~ Essays ~
         to essays    essays
(Courtesy of fravia's advanced searching lores)

(`. HTTPort .)
by Dmitry Dvoinikov
published at fravia's searchlores in May 2000

Do not forget to check the GNU project at [http://www.nocrew.org/software/httptunnel.html] as well
HTTPort

TCP/IP through HTTP tunneling client

Written by Dmitry Dvoinikov < ddvoinikov(AT)geocities(POINT)com>

Download: here (fravia's)
Read FAQ: here.


Table of contents:

1. What is HTTPort for ?
2. More details, advanced usage and surfing privacy
3. Brief manual
4. Limitations
5. System requirements
6. Copyright and distribution policy
7. ToDo and improvements
8. Contributors



1. What is HTTPort for ?

HTTPort allows you to access multiple Internet services, while being blocked from the Internet with a proxy.

The typical case is as follows: your company policy allows you to use HTTP Internet web service only. That is, all you can do is to run your browser and surf around the web.

This prevents anyone within proxy scope from using e-mail, ICQ, and all other software that uses Internet protocols different from HTTP. This may include entertainment (online games, chat, IRC, instant messengers etc.), business (realtime stock rate monitors, JAVA news browsers etc.) and billions of other applications.

Internet protocols are stacked. Every protocol works atop of some other. The basic and most widely used Internet protocol is TCP/IP. This protocol is the blood of the Internet. Almost every other Internet protocol relies on TCP/IP services.

The typical software operates as follows (very approximate):

- open a TCP/IP connection to "remote.server.com"
- send and receive data through an open connection
- close connection

HTTP proxy that blocks you from the Internet does not allow you to connect to an arbitrary host "remote.server.com", thus preventing the software from operating.

Lucky, there is a way of opening a virtual connection through a proxy if your proxy supports HTTP protocol version 1.0 or higher. HTTPort uses this protocol feature.

| Technical note: HTTPort looks similar to SocksCap client,
| but it is different. SocksCap requires that your proxy support
| SOCKS (port 1080), whereas HTTPort relies on HTTP CONNECT
| operator on conventional port 80 (8080, 3128 etc.).
| My proxy did not support SOCKS. :)

Any software can use this technique, so the software described above could have worked as follows:

- open a virtual TCP/IP connection to "remote.server.com" through a proxy
- send and receive data through an open connection
- close connection

This works fine even if you are under proxy, but almost none of the Internet software supports this feature. This is where HTTPort becomes useful.

HTTPort allows you to emulate any remote service on your local machine. When HTTPort is running on your computer, the software you use consider any remote server to be close at hand (at localhost to be specific). Instead of trying aimless connection attempts to "remote.server.com", which is impossible due to proxy, it connects to "localhost", or (synonym) "127.0.0.1". Both "localhost" and "127.0.0.1" are the predefined literal addresses that correspond to THIS computer.

When the software connects to "127.0.0.1" your proxy doesn't even know about it. Actually, connection to "127.0.0.1" will succeed even if you disconnect the network cable from your computer.

The further scenario is as follows:

- when HTTPort intercepts the connection to localhost, it opens the virtual connection to the "remote.server.com" as described above.
- thus there appears a double link that connects the software that knows nothing about the proxy, HTTPort that knows everything about the proxy and the proxy that knows nothing about the software.
- the behaviour of this double link is indistinguishable from the behavior of a regular TCP/IP link, from the software and the remote server point of view.
- HTTPort transfers the data back and forth while knowing nothing about the nature of the data. This makes it possible to use it with ANY kind of TCP/IP software.

I will call this process "a mirroring". In the above case I will say that HTTPort mirrors "localhost:localport" to "remote.server.com:remoteport".



2. More details, advanced usage and surfing privacy:

Well, there is not much left to say. I found HTTPort to be VERY useful in one more aspect:

Let's assume a typical situation:

When you are surfing the web, your company proxy logs all of the sites that you visit, making it possible for the network administrator to monitor your surfing activity.

Do you like it ? Me - no. Where to surf is a personal business and the company should better trust the employees instead of agressively controlling them.

Now, let's take the HTTPort and set it up the following way: (the described connection configuration already exists in this package).

- HTTPort should mirror "localhost:8080" to "webcache.dial.pipex.com:3128". Note, webcache.dial.pipex.com is a large FREE public proxy server. (I have contacted the PIPEX company and they confirmed that the proxy is open to be freely used by anyone). Optionally you may mirror "localhost:8080" to any other web proxy server you know and you like (different from your company proxy, of course).
- Your browser should use "localhost:8080" as a web proxy. See your browser manual on how to achieve that.
- Now surf to "whatever.you.like.com".
- What happens when you surf ? Your company proxy sees that you are connecting to a large proxy server that is assumed to be safe and secure. But you proxy does not know where you are actually connecting to ("whatever.you.like.com"). In order to do so, it should analyze the traffic, which is very hard.
- The PIPEX proxy sees that someone from "proxy.yourcompany.com" connects to "whatever.you.like.com" but it does not know who you are (NOTE, that your company proxy may reveal some of your details to the PIPEX proxy, and furthermore to the remote site).
- The "whatever.you.like.com" remote site sees that someone from "proxy.pipex.com" connects, but it does not know who you are (same NOTE as above).

This scheme makes it very hard for your local company proxy admin to monitor your surfing activity.

Are you using HTTPort, or not, you may visit
http://privacy.net/analyze
in order to see what information about yourself is revealed to any remote site you visit.

Also I can think of many other useful possibilities:

- using HTTPort as mini-proxy
- HTTPort chaining
- etc. etc.

But I won't tell you all of the ideas, for I guess it would be interesting to you to discover it by yourself :)



3. Brief manual:

When you start up the HTTPort for the first time, it has no proxy defined. You should enter your company proxy parameters on the "System" page. Parameters include proxy host name (name or IP address) and port (typically - 80, 81, 8080, etc.).

The mirroring parameters may be edited on the "Port mapping" page. The default mappings included in this package include:

- localhost:8080 is being mirrored to webcache.dial.pipex.com:3128 So, set your browser to use localhost:8080 or 127.0.0.1:8080 as a proxy, and surf safer.

- localhost:25 is being mirrored to smtp.mail.yahoo.com:25
- localhost:110 is being mirrored to pop.mail.yahoo.com:110

The later two allow you to use your free Yahoo! mail account (if you have one). If you do not, simply modify the mapping - substitute "your.mail.server.com" instead of "smtp.mail.yahoo.com" in both mappings.

Now run your favorite mail client and modify its properties in order for it to use "localhost:25" and "localhost:110" for SMTP and POP3 servers respectively. This makes it possible to send and receive e-mail from under a proxy !

Moreover, if you have got more mail accounts, add two more mappings, mirror another two local ports to
your.another.mail.server.com:25 and
your.another.mail.server.com:10 and here you go.

Click "Start", minimize HTTPort and enjoy :)



4. Limitations:

HTTPort works with any software that uses TCP/IP.

HTTPort DOES NOT work with ICQ. This is due to the fact that ICQ uses UDP/IP protocol by side of TCP/IP. There is no way of mirroring UDP/IP protocol through an HTTP proxy.



5. System requirements:

- Windows 9x or Windows NT
- Winsock 1.1
- TCP/IP protocol installed and configured
- HTTP 1.0 compliant proxy server that supports CONNECT operator.



6. Copyright and distribution policy:

HTTPort is written by Dmitry Dvoinikov <ddvoinikov@geocities.com>

(c) 1999, Dmitry Dvoinikov

HTTPort is freeware. You may distribute it freely, only if no modifications are made to the original distribution package. If you wish to use HTTPort with commercial package, you are free to do it, but you should make no profit on HTTPort as a part of the package. This means that HTTPort may not be sold in any way, either explicit or implicit.

HTTPort is provided on "AS IS" basis. No guarantee of any kind. No warranty of any kind. No responsibility of any kind. I just give away an application and you just use it if you wish. That's all.

Almost no support provided. I've tested HTTPort VERY throughly and consider it to be stable. As always, there is exactly ONE bug, but I just don't know where is it :)

HTTPort is compressed with freeware
PE-Pack (c) 1998 by ANAKiN

Installer is made with freeware
Freeman Installer (c) 1993-1997 by TipTec Development.



7. ToDo and improvements:

Changed in version 1.1:

+ proxy authorization (basic)
+ connection statistics
+ updates notification


What else ?

Whatever you say :) Don't hesitate to write me your suggestions.



8. Contributors:

Tony Younes
Simone Palla <sfinge@usa.net>
Pieter van der Merwe <PvdMerwe@RUBICO.COM>



Have a nice day :)

Best regards,
Dmitry Dvoinikov

15.12.1999

(c) Dmitry Dvoinikov, published at searchlores.org in May 2000

Petit image

(c) 2000: [fravia+], all rights reserved