FreeSpeechMe

FreeSpeechMe is a browser extension for Mozilla Firefox which enables viewing .bit websites. FreeSpeechMe was the first implementation of .bit's protections against MITM attacks, and still offers the best protections in this area. FreeSpeechMe also supports viewing .bit websites hosted behind the Tor and I2P anonymity networks (although viewing such websites is not anonymous).

FreeSpeechMe Is Replaced by ncdns and dns-prop279

FreeSpeechMe has been replaced by ncdns and dns-prop279. All information below is historical.

System Requirements

Compatibility note: FreeSpeechMe is currently not compatible with the Windows release of Firefox 33 and higher. Previous Windows releases (including version 31ESR) as well as GNU/Linux releases (both ESR and latest) are believed to be unaffected. We are working on a fix.

Windows or GNU/Linux (32-bit or 64-bit).

Mozilla Firefox (similar browsers such as Iceweasel may also work).

(Optional) Namecoin Client and NMControl; these are bundled with the Firefox extension, so you probably don't need to download these seperately.

Enough system resources to run the Namecoin Client and NMControl. This means about 1.6 GB of free disk space to store the blockchain, and about an hour to download the blockchain.

32-bit GNU/Linux users will need to install the Namecoin Client and NMControl themselves.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

Before You Install

Certain antivirus software silently deletes any program that it has never seen before. Norton is notorious for doing this. We have received reports that this causes some antivirus programs to delete the Namecoin Client and NMControl which are bundled with FreeSpeechMe. If you use such an antivirus program, you have a few options:

Complain to your antivirus vendor.

Find a better antivirus program.

Download and install the Namecoin Client and NMControl yourself, in the hopes that this won't trigger the antivirus.

FreeSpeechMe contains no viruses, spyware, adware or malware. Of course, you shouldn't take our word for this. FreeSpeechMe is GPL-licensed Free Software (source code on GitHub) and anyone can vet it; technically savvy users are encouraged to build from source code if they desire. Disabling your antivirus software just to make a single application work is extremely unwise, and we do not recommend it. We are investigating better methods of improving compatibility with antivirus software.

If you already have the Namecoin Client or NMControl, be aware that the bundled versions included in FreeSpeechMe will not play well with the versions you already have. This means that you should either not enable the bundled versions, or you should close the versions you already have before you start Firefox. Nothing horrible will happen if you don't do this; one of the versions will simply fail to work until the other is closed. This behavior is heavily improved in our internal betas which will be released soon.

Installation

You can install by clicking this link from Firefox: download unavailable, see notice at top of page.

Next, you will get this pop-up. Click “Allow”:

You will see a download bar in the top left, and almost simultaneously, another pop-up about only allowing software from authors you trust. Click “Install Now”:

(In the future, we intend to submit FreeSpeechMe to the Mozilla Add-Ons website, which would remove these scary security warnings.)

You'll get a dialog box asking you to restart Firefox. Click "Restart Now".

If you already have both the Namecoin Client and NMControl installed, then you're done. Scroll down to "Making sure it works". If not, you'll need to tell FreeSpeechMe to use the bundled versions. Look for the new icon near the top-right corner of Firefox. Click the arrow, and click Options.

On the resulting dialog box, click the Namecoin tab. Select “I don’t have namecoind or nmcontrol; use the bundled versions” from the drop-down menu. Then click “OK”.

You probably don't need to mess with the other settings and tabs unless you're the kind of person who likes tinkering with things.

If you're on Windows, two black command prompt windows will pop up. Minimize them, but don't close them. If you close them by accident, FreeSpeechMe will stop working until you go back to the Options dialog and click OK again. (Our latest internal beta hides the command prompt windows for your convenience. They are already hidden on GNU/Linux.)

You might get a warning (or multiple warnings) from your firewall software, asking whether namecoind or nmcontrol should be allowed to access the network. You should allow access.

The bundled Namecoin client will now begin downloading the Namecoin blockchain. This usually takes about an hour, but might take longer or shorter than that depending on your Internet connection and system specs. You can use Firefox normally in the meantime, but you will need to keep Firefox running for the blockchain download to keep going.

After a while you can go back into the Options dialog and click the Status tab, which will show you how much of the blockchain (measured in blocks) has downloaded. If it says "namecoind not responding, try again in a couple minutes", then either namecoind is still booting or maybe it crashed. Click OK and try again later. If it instead shows a block count, compare it to the latest block shown on a Namecoin block explorer such as https://namecha.in/. Once the block count matches, you should be able to visit .bit websites (see the next section of this page).

Making sure it works

Try visiting https://dot-bit.bit. If it loads properly, then FreeSpeechMe is working and ready to use. You can now close or re-open Firefox freely, even if you're using the bundled Namecoin Client and NMControl.

If you get an error like this:

Don’t add an exception, something’s wrong. This could be a problem on your end (maybe your blockchain isn’t fully downloaded), or it could be an issue in the website’s configuration, but it could also mean that someone is trying to hijack your connection. FreeSpeechMe’s security features rely on you not bypassing this warning. Unlike non-Dot-Bit sites where this warning may indicate that the website owner simply doesn’t have the money for a proper certificate, Dot-Bit sites don’t need the website owner to spend any money to fix this. If the website owner tries to tell you that this is normal and to add an exception, politely tell the website owner that he or she needs to fix the website’s configuration. Better safe than sorry.

Tor and I2P support

This is experimental; do not use it if you need anonymity.

FreeSpeechMe supports a new feature of Dot-Bit domains: the ability to point to anonymously hosted websites using Tor or I2P. Tor and I2P are networks that allow users to host websites without revealing their identities or locations.

Tor and I2P are a necessity for human rights activists and whistleblowers working in repressive countries, and both networks were critical in keeping citizens safe during the Arab Spring. Unfortunately, Tor- and I2P-hosted domain names normally have some issues: Tor domains (ending in .onion) are not human-memorable (e.g. duskgytldkxiuqc6.onion), and I2P domains (ending in .i2p) can resolve to different websites for different users (bad for security and censorship-resistance). FreeSpeechMe allows Dot-Bit domains to be used to point to Tor- and I2P- hosted websites, and as with all Dot-Bit domains, they are human-memorable and only can point to the correct website. Note that Dot-Bit only keeps the location and IP address of the domain owner private (assuming the domain is registered using Tor); the identity of the domain owner may be linkable with that person’s other usage of Namecoin (e.g. usernames at exchanges). Because FreeSpeechMe is not compatible with TorBrowser, you will not be anonymous while viewing .bit websites, even if they are hosted via Tor or I2P. As examples, FreeSpeechMe.org has set up two Dot-Bit domains using this: federalistpapers.bit (requires Tor) and anonymous-git-hosting.bit (requires I2P). (These websites are not hosted by Namecoin or FreeSpeechMe.org, and are solely present as examples.)

Setup is a little bit tricky right now (meaning this is for advanced users only). Instructions are below:

You'll need to have a Tor and/or I2P SOCKS proxy running, and you'll need to know its port. This is usually 9050 for standalone Tor, or 9150 if you're running the Tor that came with the Tor Browser Bundle. Leaving the Tor Browser Bundle running should be sufficient for Tor to be listening for SOCKS connections. I2P generally requires messing with the settings in your I2P client, since typically a SOCKS proxy is not enabled by default.

In FreeSpeechMe settings, go to the "Proxies" tab. Fill in the IP (probably 127.0.0.1) and port where Tor or I2P is listening.

In FreeSpeechMe settings, go to the "Namecoin" tab. At the bottom of the dialog is a list of resolvers (currently including IPv4, IPv6, Tor, and I2P). Increase the priority of Tor and/or I2P so that it is above "Resolvers below this line will not be used." If a .bit domain offers more than one resolver (e.g. offering both IPv4 and Tor, or both Tor and I2P), the order you choose here will determine which one is used.

By default, only the .bit domains that resolve to .onion or .i2p will go over the Tor or I2P proxy. If you want all of your other Firefox traffic to go through Tor or I2P too, you should setup the SOCKS proxy in Firefox's proxy settings. Make sure that remote DNS is enabled in Firefox proxy settings.

And, again, a warning: using FreeSpeechMe with Tor/I2P will harm your anonymity, both because TorBrowser isn't supported, and because possessing the ability to resolve .bit will, by itself, narrow your anonymity set massively. Do not use this if you need anonymity.

Support / Troubleshooting

Q: Loading .bit websites is giving an "invalid certificate" error, even for websites with a correct configuration, or .bit websites aren't loading at all.A: One thing that sometimes helps is clicking the green icon in the toolbar so that it’s gray, and then clicking it again so that it’s green again; this basically reboots some components of FreeSpeechMe.

Q: I'm having problems on Arch Linux.A: On Arch Linux you'll need to install the Namecoin Client and NMControl yourself; the version of NMControl which is bundled with the current release of FreeSpeechMe is broken on Arch due to a Python 2/3 conflict. This will be fixed in the next release.

Q: I'm getting the error "namecoin resolution error Failed to connect to nmcontrol".A: Either configure FreeSpeechMe to use the bundled Namecoin Client and NMControl (see installation instructions), or make sure that your own NMControl is running on localhost on the default RPC port.

Q: I'm running NMControl myself on a nonstandard RPC port; can I use it with FreeSpeechMe?A: Not yet, but adding support for this will probably be easy.