The recent political turmoils such as the arab spring in the middle east, the umbrella revolution in Hong Kong or the Ukrainian uprising have highlighted the importance of social networks as a way to raise social awareness and coordinate events. On the other side, a number of disclosure  has also highghlighted the arm race and the scale at which surveillance and censorship technologies are being used by government, to monitor and prevent the access, or the spread, of certain information in order to prevent political dissent or more recently in democratic countries, as a justification to fight terrorism propaganda.
Leaving aside the questionable political motivations of such practice, censorship technologies are not technically perfect and often results in collateral damage affecting untargeted websites or services. Some solutions exist to evade the surveillance/censorship (such as TOR ), but it can be complex for an uninitiated person to use them and may easily be improperly configured or misused leading to a false sensation of security. In more extreme case scenario, government can use a "kill-switch" to shut down entirely the internet as it happened for instance in the state of Nagaland in India the 7 March 2015 where Internet and SMS were blocked for 48 hours .
So instead of trying to circumvent internet surveillance and censorship using clever cryptographic trick, I argue that it is possible to create a social network that would not use the Internet in the first place and would instead rely solely on mobile phone and local area network. Working completely off-the-grid, such tool would be de-facto immune to state-sponsored surveillance and censorship. After a few months of development, I am very pleased to release a first version of such tool, which I called Rumble, an off-the-grid micro-blogging app, available here:
Rumble uses the human mobility and physical proximity to spread messages. Using smartphones (and their standard local wireless technologies such as WiFi and Bluetooth), users can discover each other, exchange their interests and group membership, and opportunistically propagate messages in a delay-tolerant fashion. Delay-tolerant stands for "it can take a while to propagate", this is because propagation of messages are dependant on human interaction and software availability.
How does it work ?
Rumble users exchange statuses. A status is a message, approximately the size of a tweet, that may also carry an image as well as some hashtags. When two users are within reach of each other, the Rumble application on both phones automatically sets up a connection using WiFi or Bluetooth and proceeds to the exchange of some statuses stored on both local storage database. Every status received is stored in the database and displayed to the user and may later be pushed to other devices opportunistically. Thus, statuses propagate throughout the network using human mobility, social fabric and local wireless interfaces only. Such design is inherently delay-tolerant as a status may take minutes, hours or days to be received by a specific individual, if received at all, but it also makes it resilient to communication blackout or censorship as it does not rely on any third party to work. Additionnally, we also enable users to directly chat with neighbor nodes. This mode of communication is not delay-tolerant and messages received in this mode of operation are not forwarded any further.
By default, everyone belong to the rumble.public community, so every message you send on this group will be propagated to everyone. In the use-case of a political demonstration, the network may be inflitrated with malicious agents who wants to gather intelligence about the ground activities. In order to avoid such unsollicited surveillance, it is possible to createa group or what I call a community, which can either be public or private. If any user can join a public group simply by adding the group ID to the group list, joining a private group however can only be done through an explicit invitation from a member. The invitation is on the form of a QR-code that must be scanned by the mobile phone of the invited user. The QR-code is merely the representation of the group name, group ID and the AES-256 group key used to encrypt the messages during transmission.
By releasing this app, I hope to provide a useful tool for communities and citizen. Its disruptive nature makes it very difficult to monitor or to censor. By avoiding the Internet entirely and using local area network only, we also promote a new kind of technology which might eventually profite to those located in rural area or with poor internet connectivity. Rumble is free software and the code is available on github. If you want to contribute, report issues, bugs or any suggestion on the Issue Tracker. I will gladly welcome any feedback and suggestion :-)