On Wednesday, we witnessed a major attack on democracy. This was inevitable. The fight against fascism in America has reached a new level and is far from over. And it looks like that in the coming weeks, months, and years, those fights will be in the streets, not in the legislative chambers.

It is important to freedom of speech for any and all photos and videos taken during a protest to be preserved. The safest way to do that it to make a backup of the data as soon as possible in case the original device is confiscated or destroyed.

Communication on-location is also essential. If somebody needs a medic or sees potential unethical government activity in a certain location, that information should be able to be distributed securely and quickly. There also should be a way to get essential pieces of information to as many people as possible while minimizing the work they have to do.

Availability of resources to everyone such as what rights protestors have, as well as first aid and other defensive tactics is absolutely necessary for a protest to be effective.

The idea behind this project is inspired by projects like PegLeg, though this is more meant to be something carried around in a backpack or car than implanted in someone’s leg.

Design requirements

Boiled down, these specifications come to requiring a portable device that needs to provide:

  • An Internet connection
  • Encrypted communication and file-sharing capabilities
  • Minimal work required on behalf of participants to receive the most important messages.

Hardware

The core of this project seems like an ideal application of my portable Raspberry Pi setup. The Raspberry Pi is the clear choice for something like this in terms of the computing power required, and the large WiFi antenna means that acquiring an internet connection, or broadcasting WiFi access points (more on that later) shouldn’t be too much trouble. External storage can also easily be added in case file-sharing capacity is important.

Software

An internet connection would be provided either by using a relatively inexpensive 4G dongle that would take in a prepaid SIM card. A VPN would be necessary and Tor could be used for maximum security of the data. However, the SIM card itself could easily be tracked. The other option is to use the network card that has better than average range in order to connect to a public network and then act as an access point itself. A script like create-ap or its newer, better, fork is obviously the way to go. Even if there is no internet connection available, an AP will still have to be created in order to use file sharing and chat.

I’m not sure how much that script implements protections against attacks like ARP or deauthentication attacks, so I may need to write something that automatically shuts down the network if suspicious packets are detected. Obviously, SSL would need to be implemented internally.

File storage can be taken care of by FileSend, an extremely simple but effective program to encrypt files and temporarily store them on a webserver until they must be retrieved.

In order to make messaging more effective, I’ll likely implement my own e2e_chat chat program, though it will need some more work, like adding digital signature verification and the option to require initial authentication as a secondary layer of security in case the WiFi network is compromised, before it becomes fully ready.

And finally, the most important thing it needs to be able to do is broadcast messages to a wide range of people, even people who can’t or aren’t comfortable with, using the chat or file-sharing capabilities. To broadcast a short but important message, it could create a WiFi access point, simply with the name being the message that should be sent. This has some disadvantages like being limited by range, participants needing to know to scan for WiFi networks, and that forging a message would be trivial, but the advantage is that it reaches anyone with a WiFi-enabled device and is impossible to block.

All in all, I’m interested in creating a device that will allow for efficient and secure communication and media storage during protests in order to protect free speech and always be able to hold those in power accountable.