Easy censorship-resistant communication with Syndie

A short introduction on how to run anonymous, distributed forums in this increasingly censored world.

Image for post
Image for post
“orange megaphone on orange wall” by Oleg Laptev on Unsplash

What’s Syndie?

Syndie is a tool for anonymous and high latency (i.e., non-real time) communication, currently being developed by the I2P (Invisible Internet Project).

Suppose you are a political dissident in an oppressive country or whistleblower in a hostile environment. You do not want to reveal your identity since it would be dangerous for you or your family, but still got something to say. Syndie can help you in such a case.

Of course, you can use Syndie just for fun, too.

It is somewhat difficult to explain what Syndie is. I wrote the following for my Debian package description, but I am not sure I could convey the gist of it:

Syndie is a cross-platform system for operating distributed forums, offering a secure and consistent interface to various anonymous and non-anonymous content networks.

Syndie operates like blogs, newsgroups, and forums. Authors can post messages privately or publicly. Messages are pushed and pulled to and from archive servers, which are hosted in a variety of anonymous and non-anonymous networks including I2P, Tor, and Freenet.

“distributed forums”? “operates like blogs, newsgroups, and forums”? What the heck does that mean? You may say.

In this article, I would like to provide a short and accessible introduction to Syndie. There is also a long, thorough, but not yet complete Syndie “Handbook” at I2PWiki. You need to set up I2P to read it. See my previous article if you want to know how to do. You will need I2P anyway.

Installing Syndie

Installing Syndie is quite easy. The official Download page lists installer packages for Windows, MacOS X, and GNU/Linux. Updated Debian package by me is also available from the official Debian archive. Building Syndie from its source code is not so difficult, either. Syndie is written in Java, works with Java from 1.5 up to the latest 11 (or maybe later).

On Windows, you can find “Syndie” somewhere in Start Menu (by the way, do not try “alternate UI”. It is a mess). On GNU/Linux, you can also run Syndie from the command line:

$ syndie

Forums are You

The technical design of Syndie is quite unique.

For the ordinary CMS such as Wordpress, you do create your account first, then set up blogs or forums for it. For Syndie, there is no “account.” You simply create “forums.” Your identities (yes, it is plural) are tied with each forum. So, authorization or authentication is given to forums, not you (nominally). Sounds weird, isn’t it?

Let’s learn by doing. You might have already created a forum (possibly named like “Syndie user 12345” or such, with Syndie’s first-time wizard) at your first run, but you are always able to create forums, as many as you want. Run Syndie, then find in “Create” in “Forums” menu.

Image for post
Image for post
Syndie’s “Create forums” screen. Click the image for enlargement, etc.

You can fill “Name,” “Tags,” and “Description” as you like. Tags are separated by space. If you create a forum, you can manage it, which means you can change the setting of it. So it will appear in the “Manageable Forums” in the left pane.

Running “blogs” or “forums” with Syndie

What’s blog, anyway? Usually, we expect blogs to behave like:

  • Only the blog author can start new topics
  • Everyone can read, but not start new topics
  • Everyone (or some of them) can comment (reply)

See the “Authorization and authentication” section in the screenshot above. There are four setting buttons — “Read posts,” “Create posts,” “Manage,” and “Read forum feedback.” With these, you can control what readers/writers can do on your forum.

By default, your forum is configured as a blog. Click “Read posts,” then you will find “Anyone can read posts” is checked. Then click “Create posts,” now see “Anyone can reply to an authorized post” is checked? I guess you get the idea.

How about making it a Reddit-like “forum”? Usually, forums are:

* Everyone can start new topics (threads)
* Everyone (or some of them) can reply

If you want to make your forum as “forum,” then simply check “Anyone can post” in “Create posts.”

You can also allow some “forums” (=readers) to read or reply to your forum and the others not. In this way, Syndie can mimic private mailing lists, too.

Create posts

Now you have configured your forum, let’s write something. Select your forum in “Writable forums” or “Manageable forums” in the left pane, right-click, then click “Manage.” Then click the “Post” button in the upper right corner.

Image for post
Image for post
Opening “Syndie chat” forum. Can you see “Post” in the upper right corner?
Image for post
Image for post
Writing a post. Always make sure your “forum”(=identity) is allowed to write that “forum.” Confusing?

It looks like good old e-mail software. Not all bad being anachronistic — you do not have to worry about web browser vulnerabilities.

In the “writing a post” screen, the most important button is the third one from the left. Using this button, you can change the visibility of your posts on a per-post basis.

Also, your forums and posts have unique URIs such as:

urn:syndie:channel:d7:channel44:~Y5QIfugDNH8U4eVs5K4bxUgCkXiWKaM

You can use this for advertising your forums or posts somewhere.

For forums, you can find “Copy forum URI” in the dropdown menu at the right of the forum name. For posts, right-click on the tab which contains your post, then you can find “Copy tab location”. You can open URIs with “Open Syndie URI” in the “File” menu.

Syndicating anonymously

Syndie is named after “Syndication.” Syndie provides “asynchronous” communication by syndication — which means, reading/writing posts are done on your local machine, then you fetch/push posts from/to the “archive servers” run by volunteers at the different moment. You can choose, add, or delete “archive servers.” Or, you can even be an operator of an archive server quite easily.

Image for post
Image for post
Syndie’s archive selection page.

Syndie compares fetched index with the local data, then posts not exist in the remote will be sent from the local, and vice versa. This is the reason Syndie is called “distributed forums.” This behavior might remind you of the other famous “distributed” system, Git.

Because of this, Syndie is extremely censorship-resistant — even if most of Syndie instance and archive servers are taken down somehow, your posts will survive if only one Syndie survives in this world. See Gossip Protocol for the technical background. You can also ban forums if you want.

Every post is signed and encrypted by your key tied with your forum, and uploading/downloading are done via I2P, Tor, or Freenet (or clearnet, if you really want), so even if you can not trust the operators of the archive servers at all (maybe they are run by intelligence agencies!), you do not have to worry about — your posts can not be altered by any middleman thanks to signing and encryption, and your identity information should be long lost before it arrives at the archive servers, thanks to Onion/Garlic routing.

Back up your secret key!

As mentioned above, your posts are signed and encrypted by a secret key tied with your forum. You can easily back up the key by “Backup secrets” in the “Advanced” menu. Even if you do not use Syndie anymore, at least back up your key!

A hacker wannabe from Japan. more at about.me/mhatta

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store