Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[suggestion] Better Tor integration #475

Open
yurivict opened this issue Feb 13, 2017 · 6 comments
Open

[suggestion] Better Tor integration #475

yurivict opened this issue Feb 13, 2017 · 6 comments
Labels
enhancement New feature for the user, not a new feature for build script network Network P3 Low priority security Security
Milestone

Comments

@yurivict
Copy link
Member

yurivict commented Feb 13, 2017

Currently, if Tox node wishes to work through Tor, it has to choose the SOCKS5 proxy option. This automatically disables DHT and makes such node work through the TCP relay. As far as I know, the number of TCP relays is very limited in the network. (qTox has the hardcoded list of 60.) This puts Tor-connected nodes at a disadvantage, makes them unscalable, because all of them have to share a limited number of TCP relays.

ZeroNet, IMO, took a better approach. My suggestion is based on their approach.

  • Add the "Tor integration" option with values "No/Always/Mixed". "Tor integration"=Always will enable proxy=SOCKS5, will make user to specify Tor control port (default is 9051), and HashedControlPassword (same as in torrc). Mixed mode will additionally leave Tox in the clearnet.
  • In the beginning Tox will connect to the Tor control port and create the session Tor onion address {onion}.
  • Tor-connected Tox instance will then register as such in DHT, with address={onion}
  • Tor-connected instances will be able to connect to each other and to clearnet instances the same way as clearnet instances connect to each other, only replacing UDP with TCP for DHT.
  • Clearnet-only instances will be able to connect to Tor-only instances using TCP relays, like this happens now.

Implementation-wise, the address of the Tox node will change from {IP} to {IP,Onion}. DHT will support the TCP connectivity to enable Tor nodes that have no UDP access. Only clearnet-only->onion-only connections will require going through TCP relays. All other connections will generally be direct.

This will make Tox work within the Tor network in a way similar to how it currently works over the clearnet, in a scalable fashion. Tor->Tor calls will not need to ever leave the Tor network.

@SkyzohKey SkyzohKey added enhancement New feature for the user, not a new feature for build script security Security network Network labels Feb 13, 2017
@SkyzohKey SkyzohKey added this to the v0.4.0 milestone Feb 13, 2017
@aaannndddyyy
Copy link

+1, this would also be a step towards allowing i2p integration.
I2P integration needs 3 things:

  • setting up of an i2p destination (sam)
  • an i2p destination as address in the DHT (e.g. .b32), similar to .onion
  • bridges to bridge tor, clearnet and i2p users, similar to tcp relays. Those are nodes operating in mixed mode.

@UralZima
Copy link

+1 That's very cool. Especially with onion integration!

@iphydf iphydf modified the milestones: v0.4.0, v0.3.0 Jun 3, 2017
@iphydf
Copy link
Member

iphydf commented Jan 16, 2018

I like it. This is a nice larger, independent project.

@szh7379
Copy link

szh7379 commented Apr 8, 2018

bridges to bridge tor, clearnet and i2p users, maybe you guys can dig some code from here.
RetroShare

@krasjev
Copy link

krasjev commented May 31, 2018

what is the current state on this issue?

@tox-user
Copy link
Member

I don't think anyone is working on it at the moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature for the user, not a new feature for build script network Network P3 Low priority security Security
Projects
None yet
Development

No branches or pull requests

8 participants