WhatsApp / proxy

This repository contains the WhatsApp proxy implementation for users to host their own proxy infrastructure to connect to WhatsApp for chat (VoIP is not currently supported)
MIT License
1.39k stars 377 forks source link

Support HTTP proxy instead #146

Open Heshmatkhah opened 1 year ago

Heshmatkhah commented 1 year ago

Why is Whatsapp not supporting regular HTTP(S) proxies with Authentication??

Running HAProxy should be the last option because:

  1. HAProxy doesn't support Authentication > HTTP proxies do.
  2. Using HTTPS proxy increases the security of Meta itself, Attackers may use these proxies which are publicly available without any kind of authentication.
  3. HAProxy doesn't re-encrypt traffic therefore the censorship systems easily detect it > You cant set TLS encryption on your HTTP proxy and use HTTPS proxy so the traffic can't be detected
  4. There are many running HTTP(S) proxies out there and you don't need to run a new one for yourself, but in case you want, It's verrrrrrry easy.

My recommendation is to add HTTPS proxy with authentication support to WhatsApp instead of this.

If you want to implement HTTPS proxy support in the WhatsApp application (please do so), it's important to implement it in the correct way and don't forget to implement simple important things like SNI, auth headers, and ..., just stick to RFC.

The reason I write this issue is:

  1. The censorship systems block every proxy very fast
  2. There is no authentication on my proxy, it's using my resources and I have no control over it.
Heshmatkhah commented 1 year ago

Another option is to support SOCKS5+TLS+Authetication This solution has the same benefits but uses a different protocol

There are some important facts about censorship systems (that people who live in the open world can't understand) and it's the importance of TLS re-encrypt and Authentication.

codeninja-ru commented 1 year ago

good idea

It’s said that the Russian Gov can now figure out to whom you send messages by analyzing metadata. HTTPS proxy (with proper auth) would be a great solution