During the 2009 Iranian presidential election protests, the Iranian government blocked access to Twitter and Facebook in an attempt to control the flow of information and the reporting of human rights abuses to the outside world. It is in that environment that TweetFree was born.
Originally a small project to allow censored users to post to Twitter, TweetFree was used extensively during the Iranian protests and subsequent protests in Egypt, Syria, and Tunisia, to get the word out to the world about the atrocities happening to the people and to organize protestors and communicate information. Now, I'm completely rewriting TweetFree with a new set of goals, new security, and a whole new design.
How does TweetFree Work?
TweetFree operates on the idea that blocking access to a single site is easy but blocking access to a continually changing list of sites is really next to impossible. The software runs as a series of distributed 'relay' servers who's sole goal is to accept input from TweetFree clients that live on mobile phones, desktop PC's, and the web, and forward that information into the social networks.
The entire system is multi-tiered and has three layers:
1) The TweetFree client that lives on the users PC or device
2) A network of TweetFree Relay servers that are all over the world
3) A smaller network of TweetFree Network Servers that relay information into platforms.
When a user uses a TweetFree client to post to a particular relay, that relay will not collect any information from that users device except a non-identifiable ID (to enable blocking in the event of abuse) and the status update the users wants to post. From there, the relay server will send the status update to a network server where it will be, if the relay is not blocked, forward onto the various social platforms. It's actually a pretty easy process but very effective at the same time.
What social networks does TweetFree support?
Currently, TweetFree supports a variety of the most popular social networks. We're bringing more on all the time so be sure to watch the releases carefully. Currently supported networks include:
- Google+ (experimental)
Why do you use two levels of relays?
Originally, anyone could set up a TweetFree relay and post directly to the social network stream. But we realized that 'anyone' might actually be a government agency trying to spread disinformation or lure dissenters into a trap. So we implemented a second level of relay in the Network Servers. The Network Servers exists so that we can easily block rogue relays from posting into the stream and effectively neutralize them from doing much damage.
How secure is it to use?
We believe TweetFree is very secure. All communication between the relay and the client is done via an SSL encrypted connection so the traffic can't easily be sniffed. Communication between relays and Network Servers are encrypted using AES-256 bit encryption so it would take even the most dedicated hacker or organization a very long time to break it.
As of early September. 2011 and the announcement that a security flaw had been discovered in the SSL encryption protocol, we are actively rewriting client to relay communication and will encrypt all communications using AES-256 bit encryption.
What will my money be used for?
Your generous donation will be used to fund continued development of TweetFree, to purchase support contracts for open source software we use and need support on, and to purchase hardware (computers) to run new relay and network servers from. NONE of your money will be used to pay volunteers or for any developers personal needs.
When will TweetFree be re-released?
We're currently working on a new version of TweetFree and fixing some holes to make it stronger. Because of the recent break in SSL encryption, we've pulled all previous version of the software from the web and the new version should be available shortly. The target goal for releasing TweetFree 2.0 is November 1, 2011.