Instant Messenger Chat
From Whonix
General Safety Advice[edit]
Tip: Most existing instant messenger protocols are unsafe from a privacy point of view. This is not a Whonix ™-specific problem, but a general problem with instant messengers.
It is estimated that within 10 to 15 years, Quantum Computers will break today's common asymmetric public-key cryptography algorithms used for web encryption (https), e-mail encryption (GnuPG...), SSH and other purposes. See Post-Quantum Cryptography (PQCrypto).
It is recommended to review the Do not Mix Anonymity Modes section in conjunction with this entry. For a comprehensive comparison of instant messengers, see here [archive].
Encryption[edit]
Tor exit relays can eavesdrop on communications if encryption to the server is disabled. Depending on the protocol, encryption might be disabled by default or not even supported. Tails has noted that without encryption, the exit relay can see the contact list, all messages, file transfers, and audio/video. [1] While encryption to the server prevents exit relay eavesdropping, it still leaves one problem unresolved: server logging.
High-risk users should also bear in mind that even in the event that strong and secure end-to-end encryption is used -- for example encrypted chat using .onion
connections only (staying within the Tor network) -- sophisticated attackers (nation state actors) are capable of compromising the trusted computing base (TCB) [2] of nearly all platforms: [3]
All proper end-to-end encrypted (E2EE) messaging systems store private key(s) exclusively on user's device (endpoint). The holy grail of attacks against E2EE systems is called exfiltration where the sensitive data, namely the private keys or plaintext messages, are stolen from the endpoint. The attack is directed against the trusted computing base (TCB) of the target system. The overwhelming majority of TCBs are connected to the network and compromising them with polished malware that exploits a zero-day vulnerability, is trivial and undetectable.
Another consideration is that even when using end-to-end encrypted applications, additional strong security protocols such as forward secrecy [archive] [4] may not be available for group communication channels, see: More is Less: On the End-to-End Security of Group Chats in Signal, WhatsApp, and Threema [archive].
Server Logging[edit]
Encrypted server connections do not prevent the server gathering interesting information about users, such as common contacts and the regularity of communications. An example list includes:
- account names
- buddy list (list of contacts)
- the exact date and time of logins
- message timestamps
- communication patterns like common contacts (see footnote) [5]
The content of messages will only be protected by using end-to-end encryption, for example OMEMO [archive]. The threat of server logging can be completely removed with decentralized (server-less) instant messengers like OnionShare.
Jabber / XMPP[edit]
Jabber/XMPP [archive] is a libre server-federation protocol designed with openness in mind: "... All of the existing XMPP servers, clients, and programming libraries support the key features of an IM system, such as one-to-one and multi-party messaging, presence subscriptions and notifications, and contact lists."
The system is decentralized because there is no central authoritative server; anyone can run a server. Some users are confused on this point because there are a number of large and popular public XMPP servers (like jabber.org), to which many have subscribed. [6] Each network user has a unique XMPP address called a JID (Jabber ID). The JID is similar to an email address insofar as it has a username and domain name like username@example.com [7]
Safely using the protocol requires proper use of encryption (such as OMEMO), because it is unwise to trust server connections are properly encrypted between each other. Jabber privacy is also limited, as various adversaries are capable of observing which accounts are communicating. Jabber and Tor combined only guarantee pseudonymous communications, as while the user's current location is hidden, the social graph can still expose their true identity. For tips on operational security when chatting anonymously, see this article [archive] by The Intercept [archive]. Also see: Why prefer open protocols such as Jabber/XMPP over proprietary ones such as ICQ? [archive]
IRC[edit]
When using IRC inside Whonix-Workstation ™, the Ident Protocol [archive] is automatically blocked because Whonix-Workstation ™ is firewalled. Therefore the associated daemon will not identify the username which is linked with a particular TCP connection, as is normally the case.
The Tor Project Internet Relay Chat [archive] page contains a number of important recommendations and tips for safe IRC use:
- Use onion services when available.
- Check self-signed certificates have the correct SSL/TLS certificate.
- Cycle Tor circuits to evade censorship bans.
- Chain VPNs and Tor for registration.
- Use OTR (or OMEMO if available) for end-to-end encryption.
- Distrust users and servers in general.
- Avoid personally identifiable information in chats.
- Check the user fingerprint before using IRC.
- Harden the IRC client.
- And more.
Recommendation[edit]
- Ricochet IM is no longer recommended as a decentralized (server-less) option because it is not functional in Whonix ™. [8] [9] [10]
- qtox is no longer installed by default [archive] due to security issues. [11]
Applications discussed in this chapter are listed in order of best usability and compatibility with Whonix ™, based on the opinion and experience of Whonix ™ developers.
It should be noted that no single application listed here has a superior feature set. Users must make a choice based on personal preferences and their self-assessed threat model:
- Dino IM is the best option currently. It provides the best UX, a modern and clean look and OMEMO support.
- Gajim has more Jabber users, is written in memory-safe python, supports offline messages, and can provide OMEMO-grade encryption. On the downside, it requires a Jabber server which weakens anonymity.
- HexChat is an open source IRC client based on XChat (therefore not technically an instant messenger). It has better usability and supports encrypted plugins like OTR, but on the downside it relies on centralized IRC servers.
- OnionShare provides a secure, ephemeral and anonymous chat feature. It is particularly useful because it does not require account creation, is encrypted end-to-end and reduces the risk of messages being stored locally.
- Quaternion is a libre Matrix desktop client that can be used for Telegram and IRC channels.
- Nheko Reborn is another desktop IM client for the Matrix protocol and can be used for IRC channels. The developers do not recommend it as a daily driver due to possible implementation bugs.
Dino IM[edit]
Overview[edit]
Dino IM [archive] is a modern XMPP ("Jabber") Chat Client written in GTK+/Vala for GNU/Linux and is available in Debian. OMEMO is supported, but needs to be toggled in the chat window. OpenPGP is also supported.
Installation[edit]
Install dino-im
.
1. Update the package lists.
sudo apt update
2. Upgrade the system.
sudo apt full-upgrade
3. Install the dino-im
package.
Using apt
command line parameter --no-install-recommends
is in most cases optional.
sudo apt install --no-install-recommends dino-im
4. Done.
The procedure of installing dino-im
is complete.
Dino IM is planned for inclusion by default in Whonix ™ 16. One outstanding issue at present is broken OMEMO compatibility with Gajim users.[12]
Key Backup[edit]
In addition to the fingerprint displayed in clients, OMEMO uses session/ephemeral keys: as soon as you chat with someone, these keys are created and they are replaced with new ones after every message exchange.
Without the latest session keys, incoming messages cannot be decrypted. This means when session keys are imported from an older backup, problems are likely if the keys were used in between.
Both types of keys are stored in ~/.local/share/dino/omemo.db
(a SQLite database). Problems are avoided so long as keys are not backed up while Dino is running and Dino is not started from the same database twice.
Gajim[edit]
Overview[edit]
Ubuntu provides a succinct overview of Gajim: [13]
Gajim is a free software, instant messaging client for the Jabber (XMPP) protocol which uses the GTK+ toolkit. It runs on GNU/Linux, BSD and Windows. The name Gajim is a recursive acronym for Gajim (is) a jabber instant messenger. The goal of Gajim is to provide a full featured and easy to use Jabber client. Gajim works nicely with GNOME, but does not require it to run. It is released under the GNU General Public License.
Gajim has various features, including: [14]
- chat client synchronization
- group chats
- sending of pictures, videos and other files to friends or groups
- secure end-to-end encryption via OMEMO or PGP
- the option to keep and manage all chat history
- connection compatibility with other messengers via transports, such as IRC
- various other features are available via plugins
In 2021, audio/video is reportedly not functional in Gajim. Further, OTR support was dropped in Gajim release 1.0
, but the OMEMO plugin [archive] is an encryption alternative. [15]
Figure: Gajim Client in Whonix ™
Installation[edit]
The steps below install Gajim, along with the OMEMO encryption plugin and HTTP Upload plugin [archive] (which is required for file transfers). [16] The latter plugin is fully integrated into the core Gajim software as of version 1.0
. Upon first launch of the program, users can use an existing XMPP account or create a new one.
Update the package lists.
sudo apt update
Install gajim and gajim-httpupload. [17]
sudo apt install gajim gajim-httpupload
Start Gajim from the start menu or type in konsole.
gajim
Configuration[edit]
Account[edit]
On first launch, an Account Creation Wizard Dialog will appear. Use the wizard to either create a new account to connect to the jabber network or use an existing account. For new accounts, there are multiple jabber servers available and only a username and password is required to join. [19]
Gajim Settings[edit]
The following changes are recommended for better security and privacy.
Logs:
Edit
→Accounts
→ uncheckSave conversation logs for all contacts
Activity settings:
Preferences
→Status
→ uncheckAway after
[20]Preferences
→Status
→ uncheckNot available after
Privacy settings:
Preferences
→Advanced
→Privacy
→ uncheckAllow client / OS information to be sent
Allow local system time information to be sent
Log encrypted chat session
Allow my idle time to be sent
Prevent auto-start:
Preferences
→Advanced
→applications
→Custom
→ clear fields for: [21]Browser
Mail Client
File Browser
Preferences
→Advanced
→global proxy
→Tor
Preferences
→Advanced
→global proxy
→mange
→Tor
→ checkUse proxy authentication
→ leaveusername
blank → leavepassword
blank
Gajim cannot be installed by default in Whonix ™ yet, as there is more development work TODO; see Dev/Gajim.
HexChat: IRC Client[edit]
See HexChat.
[edit]
See OnionShare.
Quaternion[edit]
Overview[edit]
Quaternion is a Qt-based desktop IM client for the Matrix protocol. Matrix is an open, federated communications protocol. [24]
To connect to other Matrix users and/or the Whonix ™ Telegram channel without dealing with Telegram Desktop, it is possible to create an account on the tchncs.de [archive] or privacytools.io [archive] home server for a more private experience; less data is collected about users compared to the matrix.org home server. The privacy issues are inherent in the synapse server side software itself; refer to this list [archive] for a full write-up. Besides federating with other Matrix instances, Quaternion supports bridging to IRC, Telegram and many other protocols. [25]
Installation[edit]
Install quaternion
.
1. Update the package lists.
sudo apt update
2. Upgrade the system.
sudo apt full-upgrade
3. Install the quaternion
package.
Using apt
command line parameter --no-install-recommends
is in most cases optional.
sudo apt install --no-install-recommends quaternion
4. Done.
The procedure of installing quaternion
is complete.
Nheko Reborn[edit]
Overview[edit]
Nheko Reborn is: [26]
... a Qt-based chat client for Matrix, an open, federated communications protocol. The motivation behind the project is to provide a native desktop app for Matrix that feels more like a mainstream chat app and less like an IRC client.
The developers explicitly warn that although the current implementation of end-to-end encryption is functional, it may have bugs that affect security. Further, it may be necessary to bootstrap cross-signing keys in a different client. Online key backup is not supported, but this can be performed offline. Most major chat features are available such as: VoIP calls (voice and video); user registration; creating, joining and leaving rooms; sending and receiving invites/files/emojis and so on.
Refer to the Nheko Reborn GitHub README [archive] for further information.
Installation[edit]
Install nheko
.
1. Update the package lists.
sudo apt update
2. Upgrade the system.
sudo apt full-upgrade
3. Install the nheko
package.
Using apt
command line parameter --no-install-recommends
is in most cases optional.
sudo apt install --no-install-recommends nheko
4. Done.
The procedure of installing nheko
is complete.
Web Browser / JavaScript Clients[edit]
Web clients can provide weaker or stronger security depending on the user's threat model.
One disadvantage of web clients is that they rely on the server not attacking the user and stealing their encryption keys from the browser. Websites can target specific users with malicious JavaScript whereas with an installed application, the code is completely static. [27]
Furthermore, installed applications can utilize TLS certificate pinning to better mitigate man-in-the-middle attacks by eliminating the dependence on potentially compromised certificate authorities. Certificate pinning is already being extensively used by applications such as Signal [28], ProtonMail [29] and others.
In addition, the stateless design of Tor Browser will erase any keys created and approved by communicating parties. This can cause confusion about the trustworthiness of contacts in subsequent sessions -- one workaround is to use a dedicated install of Firefox for that purpose.
However, there are advantages to web clients too. Websites are much less privileged than installed applications and have no direct access to system resources. Common browsers also often employ browser sandboxing technologies to contain malicious websites even in the event of a browser exploit (unless chained with an additional sandbox escape exploit).
Element Web[edit]
Element Web App [archive] is a browser-based Matrix client. It can also be run from different platforms [archive].
Converse.js[edit]
Converse.js is an OMEMO browser client [archive] which is provided by some XMPP hosting services. However, chat encryption is only available on "Trusted Devices".
Deprecated Chat Clients[edit]
The following is a list of chat clients which were previously documented on this page. It is not a list of all deprecated chat clients that have ever existed.
CoyIM[edit]
CoyIM is no longer included in Whonix ™ due to technical issues. Namely, it is currently not available from Debian stable or backports package sources (packages.debian.org
). [30] There is a chance it will be reintroduced when Whonix ™ 16 (based on Debian bullseye
) is released. Manual software installation might also be possible (see Install Software), but that procedure is undocumented by Whonix ™ developers.
Nheko[edit]
The original Nheko application is no longer maintained and was last worked on in 2018. [31]
As an alternative, consider installing Nheko Reborn.
Pidgin[edit]
Pidgin supports most protocols and OTR end-to-end encrypted chat. However, it is not recommended because it has a very poor security record [archive] with many remotely exploitable bugs. Security researcher and developer Micah Lee notes this is the result of reliance on legacy protocols and the libpurple, libotr and libxml libraries which are: "... massive, written in C/C++, and are littered with memory corruption bugs. ..." [32]
[edit]
Whonix ™ developers no longer list RetroShare, which is a friend-to-friend [archive] (peer-to-peer), decentralized network and not an anonymizing network. Encrypted RetroShare connections support chat, voice and video, mail, file-sharing, forums and Tor. [33] Although RetroShare is under active development [archive], [34] there are several serious concerns which disqualify a recommendation:
- The RetroShare package is signed with weak 1024-bit keys (in late-2018).
- A 2016 code review which focused on implementation vulnerabilities discovered multiple security issues: [35]
- The attack surface is high due to the feature-rich codebase.
- Systemic "insecure coding practice" was identified, particularly "...inconsistent return value checking and error handling, poor usage of explicit and implicit typecasting, and relaxed handling of adverse security edge-cases."
- Within a 24-hour period, auditors had developed proof of concept exploits for web-like vulnerabilities, weak binary protections, and out of bound memory reads and remote memory corruption (promptly rectified by developers).
- A coverity scan of the RetroShare code shows a large number of outstanding defects, along with a relatively high defect density. [36] [37]
Ricochet IM[edit]
Ricochet IM is unsupported since it was broken in Whonix ™ 15 despite all efforts to fix it [archive]. Riccochet's functionality in Whonix ™ 16 is yet to be formally tested.
Interested readers are most welcome to experiment with Ricochet IM to try and fix the problem -- refer to the archived documentation here.
TorChat[edit]
TorChat has not been recommended by Whonix ™ developers since late-2015. The reason is development has been at a standstill [archive] since 2013 and the TorChat developer does not respond to other people, suggesting the project has been abandoned. TorChat is also an unofficial project and unaffiliated with The Tor Project. Since communication, support, active development and security fixes are essential for anonymity-related projects, modern software alternatives are recommended. [38]
Another reason to avoid TorChat is the findings of a 2015 security analysis [39] which inspected the protocol and Python implementation: [40]
It was found that although the design of TorChat is sound, its implementation has several flaws, which make TorChat users vulnerable to impersonation, communication confirmation and denial-of-service attacks.
Tor Messenger[edit]
Do not use Tor Messenger! It was deprecated by upstream developers in early-2018. [41]
Tox[edit]
qTox has been removed from Whonix ™ [archive] due to serious security issues.
Other Software[edit]
For anonymous Voice over IP (VoIP) or encrypted, anonymous phone calls using the Tor anonymity network, see: VoIP.
If a messenger program is not listed in this chapter, it is for now recommended against. If readers feel any privacy-respecting chat clients are missing on this page, first search the Whonix ™ forums [archive] to see if that application has been discussed in the recent past. Any additions to this page will be based on an objective analysis of the software's underlying strength and compatibility with Whonix ™. [42]
Footnotes / References[edit]
- ↑ See: https://tails.boum.org/todo/Pidgin_Protocol_Review/ [archive] for an overview of Pidgin protocols and associated encryption features.
- ↑ "... the trusted computing base or TCB comprises the set of all hardware, software, and firmware components that are critical to establishing and maintaining its security. Typically, the TCB consists of an operating system with all its in-built security controls, individual system hardware, network hardware and software, defined security procedures and protocols, and the actual physical location of the system itself." Trusted Computing Base or "TCB" [archive]
- ↑ https://github.com/maqp/tfc/wiki/Security-design#the-issue-of-endpoint-security [archive]
- ↑ Advanced cryptographic ratcheting [archive]:
As we’ve discussed previously, “forward secrecy” is one of the critical security properties OTR is designed to provide. In contrast to the PGP protocol model, where messages to a recipient are encrypted with the same public key over and over again, OTR uses ephemeral key exchanges for each session. This is a critical feature of any modern secure protocol, because otherwise a network adversary who records (potentially years of) ciphertext traffic can later decrypt all of it if they manage to later compromise the one key that was used. By contrast, with ephemeral key exchanges, there is no key to compromise in the future (since the keys are only ephemerally in memory for a short time), so any recorded ciphertext should remain private.
- ↑ If the recipient knows the sender and has ever used a non-anonymous account or logged in without Tor, this information can be used to try and determine the sender's identity.
- ↑ Other popular public servers are listed here [archive].
- ↑ https://en.wikipedia.org/wiki/Xmpp [archive]
- ↑ Ricochet 'only' uses onion encryption and is difficult to set up and use. OTR or OMEMO-grade encryption is not yet available and offline messages are not supported.
- ↑ https://github.com/ricochet-im/ricochet/issues/72 [archive]
- ↑ https://github.com/ricochet-im/ricochet/issues/405 [archive]
- ↑ Tox is a fully-featured, decentralized (server-less) option which employs strong encryption, but the software is in alpha status.
- ↑ https://forums.whonix.org/t/dino-im-messenger/7773/22 [archive]
- ↑ https://help.ubuntu.com/community/Gajim [archive]
- ↑ https://gajim.org/ [archive]
- ↑ https://dev.gajim.org/gajim/gajim/-/wikis/help/gajimfaq#does-gajim-support-audiovideo [archive]
- ↑ Note this feature can be combined with OMEMO for encrypted file transfers.
- ↑
gajim-omemo
is installed by default in Debianbullseye
during the Gajim installation. - ↑ anon-apps-config [archive] which is installed by default will deactivate gajim plugin installer / updater [archive] because it is not secure.
- ↑ A new account can always be added with:
Edit
→Accounts
→New
- ↑ To prevent needlessly leaking your activity to the server.
- ↑ For better security, this prevents the automatic start of these applications from the chat client.
- ↑ To set use of the Tor network, along with Stream Isolation.
- ↑ Whonix gajim instructions giving error [archive]. Proxy authentication is tested to work in Whonix ™ 16 when the
username
andpassword
are left blank in settings. - ↑ https://packages.debian.org/bullseye/quaternion [archive]
- ↑ https://matrix.org/bridges/ [archive]
- ↑ https://packages.debian.org/bullseye/nheko [archive]
- ↑ https://protonmail.com/blog/cryptographic-architecture-response/ [archive]
- ↑ https://www.signal.org/blog/certifiably-fine/ [archive]
- ↑ https://protonmail.com/blog/tls-ssl-certificate/#Extra-security-precautions-taken-by-ProtonMail [archive]
- ↑ https://forums.whonix.org/t/coyim-in-whonix-development-discussion/5901/16 [archive]
- ↑
https://github.com/mujx/nheko [archive]
This repository has been archived by the owner. It is now read-only.
- ↑ https://micahflee.com/2013/02/using-gajim-instead-of-pidgin-for-more-secure-otr-chat/ [archive]
- ↑ Unlike other private P2P options, the F2F network can grow in size without compromising their users' identities. Also, passwords or digital signatures are required for authentication.
- ↑ See also: https://retroshareteam.wordpress.com/2021/03/15/release-notes-for-v0-6-6/ [archive]
- ↑ https://www.elttam.com.au/blog/a-review-of-the-eff-secure-messaging-scorecard-pt1/ [archive]
- ↑ https://scan.coverity.com/projects/retroshare-retroshare [archive]
- ↑ For example, compare this result with the low number of defects and defect density of the Tor [archive] codebase.
- ↑ Ricochet IM was previously recommended in this section, since it passed a recent (2016) security audit with flying colors.
- ↑ Security Analysis of Instant Messenger TorChat [archive]
- ↑ https://en.wikipedia.org/wiki/TorChat#Security [archive]
- ↑
- ↑ Also see: https://forums.whonix.org/t/client-server-instant-messengers-im-oct-2016 [archive]
License[edit]
Whonix ™ Chat wiki page Copyright (C) Amnesia <amnesia at boum dot org>
Whonix ™ Chat wiki page Copyright (C) 2012 - 2021 ENCRYPTED SUPPORT LP <adrelanos@whonix.org>This program comes with ABSOLUTELY NO WARRANTY; for details see the wiki source code.
This is free software, and you are welcome to redistribute it under certain conditions; see the wiki source code for details.
Whonix ™ is Supported by Evolution Host DDoS Protected VPS. Stay private and get your VPS with Bitcoin or Monero.
100px | |
Fosshost | About Advertisements |
Search engines: YaCy | Qwant | ecosia | MetaGer | peekier | Whonix ™ Wiki
Did you know that anyone can edit the Whonix ™ wiki to improve it?
Priority Support | Investors | Professional Support
Whonix ™ | © ENCRYPTED SUPPORT LP | Freedom Software / Open Source (Why?)
The personal opinions of moderators or contributors to the Whonix ™ project do not represent the project as a whole.