HTTP Headers in I2P: Why HTTP Proxies Are Preferable to SOCKS
To access the I2P hidden network, you need special software called an I2P router: either i2pd (C++) or I2P (Java). This application contains all the internal logic of I2P and enables communication with other network participants. Your operating system doesn’t know what to do with “.i2p” domain names, so you need to send them directly to the I2P router via a proxy on your local address (127.0.0.1:4447 for SOCKS, 127.0.0.1:4444 for HTTP). The same applies to “.onion” domains, which are sent directly to the Tor router without trying to resolve them like regular domain names (ru, com, org, etc.) through a standard DNS server.
There are two main proxy protocols in common use: HTTP and SOCKS. The key difference is that HTTP proxies can’t transmit UDP traffic since they work in text mode, while SOCKS proxies transmit information between the user and the destination server in binary form. This allows SOCKS to handle any type of traffic, including UDP, which is essential for comfortable use of IP telephony and online gaming.
What Are HTTP Headers?
HTTP headers are an essential part of the HTTP protocol, which powers almost all websites you visit through your web browser. These headers carry your request to the server along with information about your client: language, operating system version, browser version, and sometimes other identifying data. The main device information is sent in the “User-Agent” value. This extra client information is supposed to help the server deliver the right page in the best format: in your language, adapted to your browser, and so on.
Privacy Concerns with User-Agent
Pay attention to the User-Agent string. If privacy is your concern, this is a problem. The combination of your operating system and browser information, along with other transmitted values, is unique enough to accurately track (or profile) a user—even if they’re not logged in and regularly clear their cookies.
The popular SOCKS proxy doesn’t interfere with transmitted headers by default, since it passes all information in binary form. Therefore, to browse privately through a SOCKS proxy, you need to manually change the default headers in your web browser. Otherwise, the server can see your preferred language, operating system, and browser. By the way, Tor only provides a SOCKS proxy.
Why Use HTTP Proxy with I2P?
I2P routers offer both types of proxies by default, but it’s recommended to use the HTTP proxy. When you use it, your request is automatically anonymized. The I2P router strips out sensitive information about you and replaces the User-Agent with the mysterious string “MYOB/6.66 (AN/ON)”, which is the same for all users.
Additionally, the i2pd HTTP proxy analyzes the requested URL on the fly. If the required short domain in the “.i2p” zone is missing, it suggests contacting one of the internal network registrars. In a similar situation, the SOCKS proxy simply can’t find the destination, and you’ll get a standard error page in your web browser.
What Does “MYOB/6.66 (AN/ON)” Mean?
When asked about the meaning of this cryptic User-Agent string in the I2P router, the developers’ chat responded:
- MYOB stands for “Mind Your Own Business”
- 6.66 is the number of the beast (a reference to the Bible, Book of Revelation)
- AN/ON is just a stylized form of the word “anonymous”
Personally, I don’t quite get the reference to the “unorthodox” number, but hopefully this won’t be a reason to ban I2P in Russia.
Author: pureacetone