-
Notifications
You must be signed in to change notification settings - Fork 24
Allow netlayer to work with an existing tor #7
Comments
I fully understand the reason why people are asking for this and it is perfectly possible to provide this feature (after some work). |
Referred here from Bisq forum. Sorry I can't make patch; I am developer, but I don't know Java. I ask support for this feature, for these reasons: In case of Tor security vulnerability, power user with system Tor can update much quicker than Bisq and its dependencies can release new package. This is not hypothetical concern. Yesterday was released fixes for TROVE-2017-009/CVE-2017-8819 and TROVE-2017-013/CVE-2017-8823. Both affect v2 onion service, used by Bisq. TROVE-2017-013 is severity "High", use-after-free. Reporter of that bug crashed Tor while running Ricochet, another Tor bundler (obviously not through netlayer). All onion service tors should be updated immediately. Is netlayer's tor-binary updated yet, so Bisq can release update? Well, to me that is the important but infrequent reason. Usual reason is this: I can't use Bisq, because for years I have strict policy to prohibit direct access by applications to clearnet. All applications are network-isolated behind Tor gateway. I think I am not alone; it is policy of many power users, privacy activists, and also of out-of-the-box systems such as Qubes/Whonix (very user-friendly). Of course Tails also does much isolation. Isolation is critical to security; and security is critical to privacy. I never worried about "leaks" of any kind; and even if application is totally compromised, my privacy is safe this way. For this principle, even official Sandboxed Tor Browser isolates the application much as it can from userland, and even filters SOCKS/control port for its own bundled Tor. Of course whatever I say about "Bisq", applies also to any other application using netlayer.
Why not pleasant experience? With right setup, there is no significant performance difference. It is a little inconvenient to configure a control port filter (important: only whitelisted is login commands, Tor Browser works just fine with external Tor. It needs some environment variables set; power user can do this, or system packagers. Ordinary user will not shoot self in foot. The only downside (really an upside) is if you put a good control port filter, Torbutton can't display network path because, duh, it should never be able to find your "real" IP address or circuit path. It is obviously the number-one Tor application, by usage. If Tor Browser can make pleasant experience with external Tor, anything can! For all this reasons - thank you for your attention to this feature. (This message is posted using Tor Browser, through network isolating Tor gateway.) |
I fully understand your concern and I do agree that once everything is running, things should run smooth. Configuring the netlayer to work with an existing configuration will be tricky part. Your restrictive setup wrt. control commands could also prove problematic… |
Thanks for your working on this! When netlayer support Tor gateway, I am excited to maybe trade on Bisq in near future... hope so. Just to answer one issue:
I am not alone there. Far from it. All most popular realworld use cases of external Tor is filtering the control port, including Tails:
Also Whonix filters the control port. Whonix (by @adrelanos) is out of the box included with Qubes OS, a userfriendly point/click platform with VM isolation. Tor runs in a dedicated VM, with filtered control port. Tails and Whonix/Qubes are now the most popular userfriendly security/privacy/Tor platforms. Both got used by Edward Snowden; maybe he wants to trade on Bisq. Obviously, to add new application in their filters require either advanced configuration, or distro packager work. They come preconfigured for various applications. Check their bug trackers for requests of new application support. If application can't be configured securely, maintainers need to say "sorry no", which make users sad and increases pointless support requests. That is about "prepackaged". I think most popular standalone control port filter is ROFLCopTor by @subgraph OS, derived in part from or-ctl-filter by @Yawning (the dev of Sandboxed Tor Browser). I know this is popular with Ricochet users, and elsewhere. Ricochet is basically same use case as Bisq, pure P2P with .onion address for user identity. So control port access needs of Bisq should be similar. It's not some weird thing I do, filtering the control port. Nobody in right mind will give unrestricted control port access to application on isolated Tor. It's called "control port" for a reason, it can be used to get real IP address, spy on other application's circuits, and totally reconfigure Tor. Compromise all anonymity! There has been some controversy about this in the Tor bug tracker (example and other bugs), but we're stuck with it now - and people adapt by use these filtering control port proxies. |
No need to get touchy :) |
Initial, very basic support is now implemented in v0.4 (in the tor.external module)
Please let me know if this is a satisfactory mid-term solution |
Do you know ephemeral: Means the onion service will be gone after the Tor control connection is closed. It's however possible and usual to retrieve onion service private key and to restore it at next run. For example https://github.com/ricochet-im/ricochet by @special is doing that. Tor ephemeral onion services would work a lot a lot better for Whonix than preconfigued Tor hidden services. https://github.com/micahflee/onionshare by @micahflee has superb Tails and Whonix support.
Related:
In Whonix:
These are unix domain socket files. Ports would also work but nowadays unix domain socket files are much more advisable since these are less likely to leak.
|
|
feature is available with version 0.6 |
Quite regularly, people with an existing tor installation are asking if Bisq (and with extension netlayer) could run using their own tor installation, and not by starting a new tor instance.
PS: some of those requests come from people running tails, but that's not the main focus of this ticket
The text was updated successfully, but these errors were encountered: