RetroShare: Secure Decentralized Communication and File Sharing Platform

What is RetroShare?

RetroShare is a platform for decentralized exchange of emails, instant messages, and files using an encrypted F2F (Friend-to-Friend) / P2P network. It is built on GNU Privacy Guard algorithms and a protocol for perfect forward secrecy. RetroShare is designed to provide secure, private, and anonymous communication and file sharing between trusted users.

How RetroShare Works

The RetroShare network topology only allows connections and data exchange between trusted participants, excluding both external contacts and direct connections with untrusted users. IP addresses of RetroShare users are hidden from each other, except for a limited circle of trusted participants—so-called friends. All connections with peers who are not friends are made through one or more independent chains of anonymous tunnels established between trusted network nodes. Mutual trust is established by exchanging certificates containing public keys. This network structure, combined with strong encryption, ensures decentralization and anonymization of data exchange.

When connecting, a user selects or generates a new pair of GPG keys. After verifying their authenticity and exchanging asymmetric keys, the connection is established using the SSH protocol, while OpenSSL is used to encrypt transmitted messages. By default, friends of friends cannot connect directly, but they can see each other if users allow it.

You can grant selected friends or all friends access to specific folders on your computer for downloading content. Access is configured separately for each folder. You can also enable anonymous access to files in a folder—these files can only be found via search, and the downloader will not know which computer the file is coming from. File transfers occur in segments through several intermediary participants. In general, data is only exchanged between friends, but the path from sender to recipient of a specific segment may pass through several friends.

Friend-to-Friend (F2F) is a type of peer-to-peer network where participants connect only with users they trust. Authentication can use digital signatures or passwords.

Communication in RetroShare

All incoming and outgoing messages in RetroShare are encrypted, making unauthorized access extremely difficult. Communication is possible through several types of chats:

  • Direct private chat: If you have exchanged certificates and established a direct connection with a network participant, you can chat privately.
  • Broadcast chat: You can send messages to all connected friends. These messages are broadcast, meaning all connected friends receive them, but friends of friends or other RetroShare users cannot see or read them.
  • Remote private chat: This allows you to privately contact someone in your extended circle who is not currently a trusted friend. The extended circle includes friends and friends of friends with full mutual trust enabled. This chat is useful for temporary private contact or exchanging certificates when public chat rooms are not suitable. Remote contact is established through anonymous tunnels and is only possible when both users are connected to RetroShare.
  • Public chat rooms: The simplest and most widely used way to communicate on RetroShare, offering anonymity, dynamic connections, and ease of use. To join public chats, simply exchange a certificate with a bot by choosing one of the sites at retroshare.rocks.

Note: Exchanging certificates with a bot only allows you to quickly access main public chats and does not grant access to network resources. To search and view content in RetroShare, you must find at least one participant willing to exchange certificates with you. For security, bots from the sites above deactivate trust in your certificate 30 days after signing. This is intended to give you time to exchange certificates with several real users and establish mutual trust. Once connected to the network, you no longer need to connect to chat server bots, and all data exchange is decentralized.

Public chats are not moderated or censored. There is no administration or the ability to ban users from chat rooms. To protect against spam, you can set a “mute” mode at the client level, causing your client to ignore messages from one or more spammers. For true anonymity in public chat rooms, it is recommended to use a chat nickname different from the one in your GPG certificate, making it impossible for an adversary to link your chat nickname to your certificate.

Private chat rooms are similar to public chats, except only users who have received an invitation from an existing participant can join. The names of private chat rooms are invisible to anyone except their members. Private chats are useful for discussing important topics with a strictly limited group.

In addition to chats, RetroShare offers a mail service—one of the platform’s most powerful and valuable features, similar to popular email services on open networks, but with key differences:

  • No server: All incoming and outgoing mail is stored only on the local computers of participants and only in encrypted form.
  • No intermediate storage servers: If the recipient is offline, the message will be delivered when they connect to the network.
  • Pseudonymous service: The sender’s IP address is unknown to the recipient; only an identifier and nickname are shown, and data is transmitted via anonymous tunnels. This means that a third party cannot, within a reasonable time, reveal the content of the message or link the sender to the recipient.
  • No spam: You can only send mail to friends or your extended circle of friends.
  • No attachment size limits.

For voice communication between two RetroShare users, there is a VoIP communicator implemented as a separate plugin. RetroShare also features a forum system that allows both anonymous and authorized messages, and can be used to exchange messages with friends.

File Sharing in RetroShare

RetroShare uses a system of announcement channels that allows files posted on a specific channel to be automatically downloaded by every subscriber. The concept and purpose of RetroShare channels are similar to torrent trackers, but with a key difference: each RetroShare participant owns their own channel, and by default, only the channel creator can publish content. The channel creator can grant publishing rights to any number of trusted users. All channel posts are anonymous—there is no way to extract information about the user’s nickname who owns the channel. Channels can be public or private.

When publishing content with many files, RetroShare allows you to create collections—XML files containing the folder structure, file names, and their hash data. When downloading a collection, users can choose to download all or only selected files.

We will release a detailed guide on installing and configuring RetroShare soon.

Leave a Reply