I don’t know how feasible this is, but I had an idea for alternative P2P realtime chat connection method for users who don’t want to reveal the IP address. Once Tor is supported in core, maybe a realtime chat app can spin up an onion site when it is first started, and then communicates thru the onion sites? There would be disadvantages like a delay when starting the app and slightly higher latency, but maybe this option could make a nice alternative for users who don’t want to reveal the IP address. I don’t know if this is something easy or difficult to do.
I don’t think this is sth for the official/main client, but a great idea for a fork.
Tor has a rust implementation Getting started with Arti | Arti, so should be possible just to add to core without changing the UIs. you could show the used guard nodes in the connectivity view, which is also returned by core (just an html document).
why not just use Orbot VPN then the p2p connection will be over tor without needing to including it directly in Delta Chat, also, DC has support for socks5 proxy so can be configured to use tor proxy running in localhost
iroh does not respect proxy settings even when connecting to the relay, don’t use proxy settings for anonymization.
updated comment, still the Orbot VPN would work for this without need to add it to Delta Chat, anyways if you care about this you will want it for any app or while browsing
BTW, that the iroh connection for webxdc doesn’t respect proxy is rather unexpected and dangerous
We can add proxy support as soon as iroh closes
Then we also need a relay-only option:
I thought the current method for P2P realtime chat uses WebRTC and I heard that WebRTC will still reveal your IP address even if you use a VPN such as Orbot. Even the Tor browser disables WebRTC because of this. Am I mistaken about this? Is simply using Orbot VPN enough to let you use realtime chat apps safely with intended anonymity?
Another reason, if support for Tor hidden services is included in DC, this is better for cross platform use, cos Orbot is only for mobile. It also ensures that the other people who are using the same realtime chat app don’t reveal their IP address, which is better for overall anonymity.
I am also interested to learn more about DC support for socks5 proxy when the proxy settings will be respected.
nope, realtime API is not WebRTC, in fact we block WebRTC
That’s good to know. And the P2P method which is used by DC doesn’t have any “IP leak” issues similar to WebRTC?
Are there any experts familiar with webxdc design and implementation who confirm that the P2P method used by DC definitely does not advertise the IP address or otherwise “leak” the IP address like WebRTC if your using Orbot or some other VPN? So it is guaranteed to never expose your IP address if you use Orbot?
Maybe it is also worth clearing this up on the DC FAQ now that P2P realtime chat is no longer experimental, for example as a next question after “How private are webxdc apps?”
Delta Chat does not send IP addresses in email messages, only the relay address. But then it tries to establish P2P connection with the help of the relay and this may expose your IP address.
As long as there is no “relay only” option, I suggest you disable p2p if you are really concerned about someone who you use webxdc’s with tries to find out your IP address.
Can someone explain this better? I thought p2p was the most secure part
where is the problem and is it avoidable?
The goal of P2P is to establish direct connections between users. If this succeeds, they learn each other public IP address and use it directly to send data without intermediate servers and relays.
It is possible to prevent direct leak of IP address by the client never trying to establish a P2P connection and only connecting over relay. That would be a “relay only” option.
In this case who would be the relay? the mail servers?
through whom can the ip be stolen? ip’s to the relay are sent unencrypted?