Centralized commercial IM providers are a real threat to our privacy. They often require users to run proprietary software, confirm their identity with SMS and give away control over their data.

We always have a freedom to take control back over our private communications.

In this tutorial, we will use XMPP as decentralized and open-source instant messaging system, OTR for end-to-end encryption and I2P network to anonymize our network activities.

Install i2pd

I2P (Invisible Internet Protocol) is a universal anonymous network layer. All communications over I2P are anonymous and end-to-end encrypted, participants don't reveal their real IP addresses.

If you don't have I2P client already, go to i2pd.website, install and run it.

Install XMPP client

Make sure your client supports OTR encryption. In this tutorial we will use psi+.

Windows users can find downloads here.

In Debian/Ubuntu, run following commands:

sudo apt-get install psi-plus psi-plus-plugins

Psi+ will ask you to setup an account at the first run, just press cancel.

Configure XMPP client

Add I2P Socks5 proxy

Options -> Application -> Proxy settings -> press Edit -> press New -> create proxy "I2P socks", type Socks version 5, Host: 127.0.0.1, port: 4447 -> press Save

Improving privacy

Options -> Plugins -> select "Client switcher plugin" in dropdown menu -> check "Load this plugin" -> check "For all accounts" -> choose Response mode: not implemented -> check "Deny iq time request"

Register an account

Account setup -> Add -> Enter your desired account name, check "Register new account" and press Add

Fill Server: i2p.rocks -> check "Manually specify Server Host/Port", then fill Host: ynkz7ebfkllljitiodcq52pa7fgqziomz4wa7tv4qiqldghpx4uq.b32.i2p, Port: 5222, select Proxy "I2P Socks". Press Next

Enter your username and long random password. Press Next.

Open Account Properties, Misc and set your resourse name "Manual" and enter some random string, like "null". Set STUN/TURN to "don't use".

You have successfully registered and set up your account.

Create OTR private key

Options -> Plugins -> select "Off-the-Record Messaging Plugin" -> check "Load this plugin" -> "My private keys" tab -> select your account and press "Generate new key".

Using OTR encryption

Later on, you will add new contacts and authenticate them with fingerprint verification. OTR button is a little lock in chat window, just above text input field.

About i2p.rocks

i2p.rocks server is connected with all other XMPP servers in the Internet. It supports both I2P and Tor darknets for anonymous access.

Invite your friends and chat with REAL privacy!