Basic problem of lets say a whistleblower is that he may not wish the person he is communicating with to know his real public IP and often the 3rd party is a non-Tor user so the use of hidden services is not possible as that person cannot access them if he/she is not connected to the Tor network. Correct me if I am wrong in this, for example if I were to setup a SIP or XMPP server as a Tor hidden service on my local Tor m/c under Linux, could a non-Tor user make connection to my server without being part of the Tor network?
The 3rd party may be technically incapable of coping with Tor or may be unwilling due to not wanting to draw attention to themself that they are using Tor and thereby automatically raising suspicion in oppressive regimes.
So my requirement is I wish to remain anonymous from the gov, and not reveal my real public IP to the 3rd party I am communicating with by using Tor at my end. To be more specific by using a Whonix Workstation to access the Tor n/w via the Whonix Gateway (both running on the local m/c in seperate VMs under a Debian host OS. Of course this question is Tor generic and not specific to Whonix.
I wish to create either a SSH, OpenVPN or a stunnel tunnel between my Tor m/c and the 3rd party's non-Tor m/c. The 3rd party could be running Debian Linux, Windows XP or Windows 7, it shouldn't matter to the overall concept here. Once I have an encrypted tunnel, I can then use Local Port Forwarding in SSH or stunnel to run whatever servicei I wish through the tunnel.
In my case I wish to use Linphone SIP Softphone at both ends to make encrypted P2P VoIP calls.
If I were not using Tor at my end, I would have setup my own SIP server on my machine and allowed the remote user to connect to it using any SIP client/softphone. Alternatively I could use a SIP proxy such as the service provided by Linphone where you get a public number ex: [email protected] which means you do not have to worry about your public IP address changing, the 3rd party is routed to you via the Linphone service. I don't really wish to use any 3rd party serice as I do not wish to introduce additional attack vectors via potential side channel attacks which may allow the SIP proxy operator to do a MiTM attack on my SRTP traffic and he would certainly know the real IP of both communicating parties even if he could not attack the crypto. If anyone knows of any potential risks/attacks in using a Linphone type SIP registration serice, please let me know to help me better understand the process.
In any case AFAIK only the SIP signalling goes via the SIP provider, the actual data in the form of SRTP if its an encrypted session goes P2P in which case the gov would at a minimum know the IP address of both communicating parties. Please correct me if my understanding is not correct here.
So returning to the issue. If I could run the SSH or stunnel server on the 3rd party's m/c I can see that it may be workable as I know his/her public IP and can initiate the session from my SIP client to their SIP client or SIP server. As an aside, when Tor switches circuits say every 10 mins does the exit node get changed too and thereby a new IP address is seen by the remote server you are connected to. If its a HTTPS session, am I correct in thinking your session is not lost even if your IP changes? Imagine if you are connected to fb via https, via Tor, and your exit not changes, obviously fb can use cookies to track you so it can ignore the IP address change, but if the application say a SIP or XMPP session is using ZRTP to do authentication, will it not think a MiTM may be taking place as the IP has changed? Or the session key, unless its stolen by the attacker, is only residing on the 2 machines at the time authentication took place so if a MiTM took place that attacker would not have the session key so the connection would be dropped by the application or at least the user warned that the session key has changed? SSH for instance would be affected if the session key changed?
Am I correct in thinking that I cannot have the SSH or stunnel server running on my local machine if I am behind Tor and the other party is not using Tor, as they cannot know my IP address to make a connection to? Any techniques I am missing which would allow a reverse SSH or HTTPS connection from the 3rd party machine back to my server? Same argument if I wish to use my own XMPP server instead going down the SIP route to have voice/video conversations.
If you can think of any NAT issues as both parties will be behind domestic WiFi routers which use NAT and in my case I am NATing a Whonix Gateway VM to the host OS which uses a WiFi connection for the Internet.
Thanks in advance, apologies for the long winded question, however this is certain a configuration issue which would be very useful to many Tor users, I have certainly been thinking about it for years as to how to keep a local attacker from finding out the real IP of the 3rd parties I communicate with because if they know their IP then they can put pressure on them to reveal my real ID and location.