{{Header}} {{Title|title= Voice over IP (VoIP) }} {{#seo: |description=Anonymous Voice over IP (VoIP). Encrypted, anonymous phone calls using the Tor Anonymity Network. |image=Sound-856771640.png }} [[File:Sound-856771640.png|thumb]] {{intro| Anonymous Voice over IP (VoIP). Encrypted, anonymous phone calls using the Tor Anonymity Network. }} = Introduction = Voice over IP (VoIP) is: https://www.fcc.gov/general/voice-over-internet-protocol-voip
...a technology that allows you to make voice calls using a broadband Internet connection instead of a regular (or analog) phone line. ... VoIP services convert your voice into a digital signal that travels over the Internet. If you are calling a regular phone number, the signal is converted to a regular telephone signal before it reaches the destination. VoIP can allow you to make a call directly from a computer, a special VoIP phone, or a traditional phone connected to a special adapter.VoIP software is complex and has a large attack surface. Several threat classes have been identified in the literature: social threats; eavesdropping, interception and modification of session contents; denial of service attacks; unauthorized access to VoIP equipment; and a sudden interruption of services. See: [https://www.cs.columbia.edu/~angelos/Papers/2009/cip.pdf Voice over IP: Risks, Threats and Vulnerabilities] Anonymizing VoIP is somewhat difficult, but still possible. It is easy to hide the IP address with {{project_name_long}}, but the voice recognition component and slow Tor network speed (latency) are definite obstacles. Depending on your threat model, pseudonymous use of VoIP might be appropriate; this involves hidden voice communications that take place with known contacts. Consider the factors in the table below before deciding to use VoIP in {{project_name_long}}. == Anonymity Factors == '''Table:''' ''Factors affecting VoIP Anonymity'' {| class="wikitable" |- ! scope="col"| VoIP Domain ! scope="col"| Description ! scope="col"| IP Anonymity ! scope="col"| Full Anonymity No information is available to uniquely identify the VoIP user. |- ! scope="row"| Tor + VoIP + Known Participants | * If two or more people use a VoIP application in combination with Tor, it is possible to hide the act of communication from the ISP, government, Tor exit relays, man-in-the-middle attackers and so on. * While the communication and IP addresses of each party remain hidden, this arrangement is not anonymous because the participants know each other. | {{Yes}} | {{No}} |- ! scope="row"| Tor + VoIP + Unknown Participants | * It is discouraged to use VoIP with anonymous parties in forums or other environments. ** The anonymous recipient of communications is a 'known unknown' -- it is impossible to confirm who you are talking to. ** The voiceprint might be correlated with your real identity later on, unless a voice scrambler or artificial voice is utilized (which is impractical in most circumstances). | {{Yes}} | {{No}} |- ! scope="row"| Tor + VoIP + Artificial Voice | * It is possible to type and let an artificial voice speak instead of using natural speech. * This technique could work (similar to anonymous videos), but there are limited benefits compared to encrypted email, other than the real-time nature of the communication. | {{Yes}} | style="background-color: {{Yellow}}" | Maybe The language structure and syntax might be unique. |- ! scope="row"| [https://en.wikipedia.org/wiki/Whistleblower Whistleblowing]: Tor + VoIP | * Whistleblowers cannot safely use their own voice if utilizing VoIP. Voice data is recorded and voice recognition works extremely well; see footnote. For more than a decade, government agencies have been recording private phone calls to identify individuals by their unique voiceprint, while also recording and transcribing personal conversations, see: [https://theintercept.com/2018/01/19/voice-recognition-technology-nsa/ Finding Your Voice] for a detailed description based on intelligence disclosures. * Almost everybody has had multiple non-anonymous phone calls in their lifetime, which provides a solid baseline for later correlation of 'anonymous' and non-anonymous identities. * While commercial digital voice scramblers are available on the market, their effectiveness is a whole new field of research which is outside of the scope of {{project_name_short}}. | {{Yes}} | style="background-color: {{Yellow}}" | With scrambler: Maybe |- |} == Voice Recognition == It is safe to assume that everyone has had an unencrypted phone call during their lifetime and that one of them has been recorded. Voiceprints allow a person to be identified from the specific characteristics (acoustics) of their voice and it is a useful biometric marker. https://en.wikipedia.org/wiki/Speaker_recognition#Technology This means personal and unique voiceprints can be used to link non-anonymous and "anonymous" voice samples; a process called voice recognition. Writing styles are also personal and unique. Individuals can be identified with a similar method called [[Stylometry]], which is documented on the [[Surfing_Posting_Blogging|Surfing Posting Blogging]] wiki page. == Software and Configuration == Some fully-functioned and reliable Libre VoIP software is already available, such as [https://packages.debian.org/{{Stable project version based on Debian codename}}/linphone Linphone] and [https://jitsi.org/downloads/ Jitsi]. See: [https://en.wikipedia.org/wiki/Comparison_of_VoIP_software Wikipedia: Comparison of VoIP Software] to research alternatives. Unfortunately it is not possible to communicate directly over Tor using a VoIP server, because all session initiation protocol (SIP)-based clients use UDP and Tor developers closed the related support ticket years ago. https://gitlab.torproject.org/legacy/trac/-/issues/7830 This does not mean it will not be supported in the future, but the wait could be lengthy. The best workaround for SIP clients at present is to [[Tunnel_UDP_over_Tor|Tunnel UDP over Tor]]. The main downside of this method is that phone calls over Tor are slower and less convenient compared to ordinary networks. The reason is even when UDP packets are tunneled over Tor, the restrictions of the underlying TCP protocol still apply. To account for delays, [https://en.wikipedia.org/wiki/Push-to-talk push-to-talk] is a reliable communication method in this configuration -- it has similarities to using a [https://en.wikipedia.org/wiki/Walkie-talkie walkie-talkie]. The [https://guardianproject.info/ Guardian Project] recommends that 'prowords' (procedure words) https://en.wikipedia.org/wiki/Procedure_word such as "Roger" are used to acknowledge the end of transmission (speech, sentence). Once your calling partner hears "Roger", it is understood that it is safe to answer and then also terminate the answer with "Roger" or "Out" when leaving the conversation. When configuring the chosen software, it is safer to delegate encryption to Tor by utilizing onion services for both the caller and receiver. If that is not possible, then only use VoIP clients which support end-to-end encryption protocols like [https://en.wikipedia.org/wiki/Secure_Real-time_Transport_Protocol SRTP] or [https://www.silentcircle.com/products-and-solutions/technology/zrtp/ ZRTP]. ZRTP has been implemented in Jitsi as GNU ZRTP4J, and in Linphone as oRTP. This recommendation comes with warnings: * Never use a [https://www.techopedia.com/definition/4759/variable-bit-rate-vbr Variable Bit Rate (VBR)] codec because ZRTP cannot protect it. ** If this advice is ignored, pauses in conversation will produce fingerprints in the encrypted stream that allow adversaries to infer what words are being said. https://web.archive.org/web/20240111013332/https://zfoneproject.com/faq.html#vbr Research has [https://www.technologyreview.com/s/410280/breaking-phone-call-encryption/ found]:
... in encrypted phone calls using a certain combination of technologies, preselected phrases can be spotted up to 50 percent of the time on average, and up to 90 percent of the time under optimal conditions. ... Variable-bit-rate encoding, Wright says, adjusts the size of data packets being sent over the Internet based on how much information they actually contain. For example, when the person on one end of a VoIP call is listening rather than speaking, the packets sent from that person’s computer shrink significantly. Also, packets containing certain sounds, such as “s” or “f,” can take up less space than those containing more-complex sounds, such as vowels.* Authentication strings must be compared with the other party during the initial call. If the strings do not match then this signals an active man-in-the-middle attack is underway and the call should be terminated. == Servers and Privacy == Even with end-to-end encryption, VoIP servers servers can log call signalling metadata. This is not a major threat if: # VoIP IDs are anonymously registered (no personal data is required for signing up). # All parties only and always connect over Tor and have never used (or will use) accounts over clearnet. # All calls are encrypted end-to-end. # No communications occur with anonymous strangers. In this case it is unlikely a malicious server could cause much harm from logging or other actions. Apart from trying to [https://en.wikipedia.org/wiki/Exploit_(computer_security) exploit] random Tor users. Other than the factors outlined in this introduction section, no additional anonymity or security problems have been identified for VoIP. That said, this configuration is less tested in {{project_name_short}} so the performance and voice quality could be quite variable. If this activity is necessary, then it is recommended to test the performance of VoIP software for yourself and to provide feedback about the experience. = Tox = Tox https://wiki.tox.chat/users/faq#what_is_tox https://tox.chat looks like a promising solution for secure, encrypted communications. The official client implementation is based on the [https://toktok.ltd/ TokTok] protocol library, which is very feature-rich and has a variety of functions besides [[VoIP]]. By default, Tox does not attempt to cloak your IP address from authorized contacts. However, Tox is the only Tor compatible VoIP solution we know of, allowing communication with others even if they are not anonymous. https://wiki.tox.chat/users/tox_over_tor_tot Desktop versions are available for every major OS, however mobile support is lacking. https://wiki.tox.chat/clients To learn more, refer to [[Chat#Tox|this entry]]. = Signal = [[File:Signal.png|
Encrypting the packets after they’ve been compressed scrambles their contents, making them look like gibberish. But it doesn’t change their size, which is what would give away information to potential eavesdroppers.
Signal
Logo|thumb]]
There is a user report of Signal working between one instance running over Tor and the other in the clear.
In reply to Patrick Schleizer (Telegram)
Did you test this? How is voice quality?
Yea, I just started receiving calls out of blue on both my GrapheenOS phone with Orbot and always on vpn set and also on iPod touch connected to GLiNet Mudi w/ Tor firewall. So far I had about a 60% success rate with calls that connect on first attempt and consistent quality with no drop outs. Wire I have about 80%. Both these devices are heavily firewalled no side channel leaks occurring it is absolutely working not with ideal reliability on signal but it’s a start. Note all my calls have been from signal + Tor to signal only . I have not tested calls between two TOR signal parties.
Notes:
* Signal is not in packages.debian.org. Only third party (signal APT repository).
* Signal Desktop requires a [[Phone Number Validation]]. "There are plans to give users more freedom by letting them use emails. Workarounds to register a phone no. anonymously may be possible, but not straight forward." - Source?
See also: [[Signal]]
= Mumble =
[[File:Mumblelogo.png|thumb|Mumble Logo|border]]
== Introduction ==
Mumble is: https://packages.debian.org/{{Stable project version based on Debian codename}}/mumble
... a low-latency, high quality voice chat program for gaming. It features noise suppression, encrypted connections for both voice and instant messaging, automatic gain control and low latency audio with support for multiple audio standards. Mumble includes an in-game overlay compatible with most open-source and commercial 3D applications. Mumble is just a client and uses a non-standard protocol. You will need a dedicated server to talk to other users. Server functionality is provided by the package "mumble-server".Mumble has a number of advantages: https://sourceforge.net/projects/mumble/ https://github.com/mumble-voip/mumble https://www.mumble.com/mumble-server-support.php https://wiki.mumble.info/wiki/FAQ/English
Your whole communication to and from the server is always encrypted. This encryption is mandatory and cannot be disabled. The so-called control channel, which transports your chat messages and other non-time critical information, is encrypted with TLS using 256 bit AES-SHA. The voice channel carrying speech and positional audio is encrypted with OCB-AES 128 bit. You and the server authenticate to each other using digital certificates like they are used for secured connections in Web-browsers.* The communication is high quality and low latency. Although some voices are reported to sound 'metallic' or 'robotic'. * It is possible to check nobody is wiretapping the connection (MITM) by verifying client/server certificates. [https://wiki.mumble.info/wiki/FAQ/English#How_can_I_verify_that_there_is_nobody_wiretapping_my_connection_.28MITM.29.3F How can I verify that there is nobody wiretapping my connection (MITM)?] * Push to talk is supported. https://www.mumble.com/support/mumble-server-push-to-talk.php * The interface is similar to [https://teamspeak.com/en/ Team Speak], but without its disadvantages. * It supports TCP mode https://ccm.net/faq/26187-mumble-force-tcp-mode which is necessary because the Tor network does not support UDP yet.
127.0.0.1
) connections are recommended since it is faster than connecting to the onion service domain.
Group chats pose a greater risk since there is no end-to-end encryption. This means if the server is compromised, all conversations are no longer private. However, if only two parties use Mumble for communications, then end-to-end encryption protects against this threat.
When one of the two communicating parties hosts a mumble server as a Tor onion service and the other party connects over Tor, encryption is already provided by Tor. This means Mumble's own encryption is not required and so long as a server password is set (see below), this configuration should be secure. Alternatively, the interested reader can learn more about Mumble certificates for defense in depth, as well as using channel passwords instead of server passwords and so on.
For detailed instructions on using and configuring Mumble, refer to:
* [https://www.mumble.com/mumble-server-support.php Mumble Server Support]
* [https://wiki.mumble.info/wiki/Main_Page Mumble Documentation Wiki]
== Mumble Server Instructions ==
Newcomers are recommended to first read the introduction to [[Onion_Services|Onion Services]] and to learn about security benefits compared to regular 'clearnet' connections. This wiki resource is also useful if configuring a hidden web server on the same .onion
domain, since it helps users to grasp basic operations and test them.
{{Box|text=
'''1.''' Make necessary {{project_name_gateway_long}} adjustments.
{{mbox
| type = notice
| image = [[File:Ambox_notice.png|40px|alt=Info]]
| text = If Sandbox 1
was previously set in the Tor configuration file, it must be removed for Mumble functionality.
}}
{{Open /usr/local/etc/torrc.d/50_user.conf}}
Add.
{{Box|text=
{{IP-of-q-ws-AppVM}}
}}
{{CodeSelect|code=
HiddenServiceDir /var/lib/tor/mumble_service/
HiddenServicePort 64738 10.152.152.11:64738
HiddenServiceVersion 3
}}
Save.
'''2.''' Reload Tor.
{{Reload_Tor}}
'''3.''' Retrieve the Tor onion service url.
{{CodeSelect|code=
sudo cat /var/lib/tor/mumble_service/hostname
}}
{{
Backups_Tor_Onion_Service_private_key
|private_key_file=/var/lib/tor/mumble_service/hs_ed25519_secret_key
|file_name=hs_ed25519_secret_key
}}
'''4.''' Adjust {{project_name_workstation_long}} firewall settings.
{{Firewall_Settings_Workstation}}
Add.
{{CodeSelect|code=
EXTERNAL_OPEN_PORTS+=" 64738 "
}}
Save.
'''5.''' Reload the firewall.
{{Reload_Firewall_ws}}
'''6.''' Update the package lists and install necessary software.
{{CodeSelect|code=
sudo apt update
}}
Install the {{Code2|mumble-server}} package.
{{CodeSelect|code=
sudo apt install mumble-server
}}
'''7.''' Configure the server.
{{CodeSelect|code=
sudo dpkg-reconfigure mumble-server
}}
Follow the recommendations below:
* Autostart is suggested, unless you want to run {{CodeSelect|code=sudo service mumble-server start}} (which failed in the past).
* Higher priority? Select 'Yes'.
* Password: choose a secure password.
There is also an upstream [https://wiki.mumble.info/wiki/Murmurguide Mumble server guide], but it does not consider onion services which are already described here. For any additional questions regarding the server setup, refer to the upstream documentation.
'''8.''' Set a server password in the relevant file.
{{Open with root rights|filename=
/etc/mumble-server.ini
}}
Search for "''serverpassword=''" and file in.
serverpassword=use_a_long_and_secure_server_password'''9.''' Restart mumble-server. {{CodeSelect|code= sudo service mumble-server restart }} }} == Mumble Client == === Installation === Update the package lists. {{CodeSelect|code= sudo apt update }} Install mumble. {{CodeSelect|code= sudo apt install mumble }} === Start === Launch Mumble.
Start menu
→ Applications
→ Internet
→ Voice Chat
Or in a terminal, run.
{{CodeSelect|code=
mumble
}}
'''Figure:''' ''Mumble Client in {{project_name_short}}''
[[File:Mumbleclient.png|border]]
=== Configure ===
Configure Mumble to suit your preferences.
Next, enable Force TCP mode.
Go to Configure
→ Select "Settings"
→ Network
→ Check "Force TCP mode"
→ Ok
'''Figure:''' ''Mumble Network Setting''
[[File:Mumblenetworksetting.png|border]]
=== Add Server ===
Follow these steps to add a new server. https://wiki.mumble.info/wiki/Murmurguide#Connecting_to_Murmur_Server
Server
→ Connect
→ Add New...
# Servername: anything - this can be same as the .onion domain name
# Address: enter your .onion domain name or if the mumble server is running in your own {{project_name_workstation_short}}, choose 127.0.0.1
# Port: 64738
# Username: anything
It is now possible to connect to the server.
'''Figure:''' ''Mumble Server Information''
[[File:Mumbleserverinformation.png|border]]
== Technical Notes ==
Mumble (and mumble-server) connections pass through Tor's TransPort, but this should not have a negative anonymity impact. The reason is connections to and from onion services are stream-isolated. See [[Stream Isolation]] for further information on TransPort, SocksPort, stream isolation and related issues.
Security-conscious, free software developers consider browsers as a poor and dangerous option for implementing privacy-critical software. Browsers have a large attack surface (numerous security holes) and lack adequate process isolation, which can lead to the theft of private encryption keys if malicious code is run.
= Asterisk VoIP Server over OpenVPN in Tor Hidden Service =
== Introduction ==
{{mbox
| type = notice
| image = [[File:Ambox_notice.png|40px|alt=Info]]
| text = This entry was contributed by [https://forums.whonix.org/u/Norbert_Szczybelski Norbert Szczybelski]. For questions and further information, refer to the forum discussion: [https://forums.whonix.org/t/how-to-setup-asterisk-voip-server-over-openvpn-in-tor-hidden-service/3410 How To setup Asterisk VoIP server over OpenVPN in Tor hidden service.]
}}
Asterisk is: https://en.wikipedia.org/wiki/Asterisk_%28PBX%29
... a software implementation of a private branch exchange (PBX). In conjunction with suitable telephony hardware interfaces and network applications, Asterisk is used to establish and control telephone calls between telecommunication endpoints, such as customary telephone sets, destinations on the public switched telephone network (PSTN), and devices or services on voice over Internet Protocol (VoIP) networks.Since Asterisk is open source and supports several standard VoIP protocols, it can be configured in {{project_name_short}} to enable the PC to run as a server for a VoIP service. Official Asterisk wiki documentation can be found [https://wiki.asterisk.org/wiki/display/AST/Home here]. == Configuration Overview == Configuration files are outlined below for: * OpenVPN server * OpenVPN clients * Tor hidden service * Tor clients * Asterisk SIP protocol * Asterisk extensions Note: this is a chrooted configuration. If necessary, servers can also be isolated in virtual machines. Be sure to also update CPU microcode to protect against the Spectre and Meltdown vulnerabilities. As an illustration, simply set up: * 172.16.0.2/10.8.0.1 OpenVPN Server - bhyve VM on server. * 172.16.0.3/10.8.0.10 OpenVPN Client with Apache - bhyve VM on server. * 172.16.0.4/10.8.0.20 OpenVPN Client with Asterisk - bhyve VM on server. * 172.16.0.5/10.8.0.30 OpenVPN Client with UnrealIRCd - bhyve VM on server. ... * 172.31.0.9/10.8.10.10 OpenVPN Client with Apache - bhyve VM on client. * 192.168.38.37/10.8.10.20 OpenVPN Client with UnrealIRCd - bhyve VM on client. And so on. Next, set up static IP addresses in ccd directory for OpenVPN Client servers. Finally, generate encryption keys with OpenSSL (modified OpenSSL can be utilized for quantum-resistant cryptography). == OpenVPN Server openvpn.conf Configuration File == {{CodeSelect|code= mode server tls-server dev tun proto tcp-server port 1194 server 10.8.0.0 255.255.0.0 ca /vpn/ca.crt cert /vpn/server.crt key /vpn/server.key dh /vpn/dh2048.pem tls-crypt /vpn/ta.key cipher AES-256-CBC auth SHA3-512 log /var/log/openvpn.log status /var/log/openvpn-status.log user nobody group nobody persist-key persist-tun chroot /usr/local/etc/openvpn/jail auth-nocache # If you want to allow clients to communicate between themselves e.g. start own services like UnrealIRCd Servers. client-to-client client-config-dir /ccd }} == OpenVPN Clients client.conf Configuration File == {{CodeSelect|code= client remote-cert-tls server dev tun
Skype can’t work without a TCP connectionRefer to the "Skype over Tor" section here: [https://guardianproject.info/2012/12/10/voice-over-tor/ guardianproject.info: Voice over Tor?] == TORFone == {{Anchor|SpeakFreely}} {{project_name_short}} has consistently advised against [https://github.com/gegel/torfone TORFone] -- a fork of [https://web.archive.org/web/20210813051928/http://www.speakfreely.org/ SpeakFreely] -- since the developer in 2013 recommended against using the software: https://lists.torproject.org/pipermail/tor-talk/2013-February/027215.html ''"I did not think this project as a finished product for practical use."'' At that time, the project received an overall poor review in the mailing list thread. It is unclear whether the situation has improved over the last several years, but the software is under active development based on the number of recent commits. Any reader who is interested in testing TORFone in {{project_name_short}} is encouraged to report their experience here. == USB Webcam Passthrough == Avoid this course of action -- the firmware of USB devices could be flashed by malware and cross infect the host. = VoIP Software List = There is a [https://en.wikipedia.org/wiki/Comparison_of_VoIP_software Comparison of VoIP software] page on Wikipedia. Any client that is chosen should be open source and if onion services are not being used on both ends of the communication (where Tor handles the encryption), then it should also support voice encryption such as ZRTP. = Sources = * [https://guardianproject.info/2013/01/31/mumble-and-the-bandwidth-anonymous-cb-radio-with-mumble-and-tor/ guardianproject.info: Mumble and the Bandwidth Anonymous CB radio with Mumble and Tor] = Footnotes = {{reflist|close=1}} {{Footer}} [[Category:Documentation]]
But Skype can work without UDP
Blocking UDP is not sufficient