Skip to content
This repository has been archived by the owner on Feb 5, 2023. It is now read-only.
/ distort-server Public archive

A reference-implementation homeserver for the research anonymity protocol, DistoRt, with broadcasting over IPFS

License

Notifications You must be signed in to change notification settings

ryco117/distort-server

Repository files navigation

DistoRt Homeserver

(site)

About

A reference implementation homeserver for the research anonymity protocol DistoRt (designed by JS Légaré), with message broadcasting performed over IPFS. The homeserver is created with Node.js and stores its data to a MongoDB database. It can be interacted with remotely through REST API calls. A privately managed IPFS node must be exposed to the homeserver for pushing and receiving messages.

Security

DistoRt provides both anonymity and confidentiality. This means that both the recipients and contents of messages are hidden from anyone monitoring the communication. This is achieved through the use of public-key cryptography and a broadcast network. Messages are encrypted using the public key of the recipient and broadcast over the network to all participants. Since the message was encrypted to a specific key, only intended target will be able to decrypt and read the contents. Furthermore, since the message was broadcast, any one of the peers on the channel could potentially be the target of the message, providing receiver anonymity. In addition, messages are broadcast exactly once every 5 minutes to ensure that anonymity can be preserved even when an attacker is listening for patterns in timing between outgoing messages.

Build

Docker Build

Run docker-compose up to launch containers for a private MongoDB database, contained IPFS node, and the distort homeserver (exposing the configured port; default is 6945).

Host Build

Can be easily built with make && npm install then launched with npm start. In this instance you are responsible for having a private MongoDB database and IPFS node that the homeserver can access. This will require manual configuration of the config.json file, documentation for which can be found here.

Technical Docs

More detailed documentation overviewing the servers function and the REST API can be found here.

Additional Comments

  • It is highly recommended to join anonymity group パン until there are enough large-scale anonymity groups that safe alternatives exist (which admittedly is a bit of a chicken-and-the-egg situation)
  • While the REST API calls offer no end-to-end encryption of their own between the client and server, it is highly recommended to create a reverse proxy in front of the server, using HTTPS with a signed certificate. The certificates can be signed either by a recognized Certificate Authority (eg., Lets Encrypt) or be self-signed. If self-signing, ensure that the client trusts the certificate.

About

A reference-implementation homeserver for the research anonymity protocol, DistoRt, with broadcasting over IPFS

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages