(theory) Distributing bridge relays through images using stenography?

Hi. I was theorizing about a concept and wanted to bounce it of to get some opinions on if it would be feasible. If so, I might make a Proof-of-Concept as hobby project once for learning purposes.


TL;DR - IMHO stenography could be a really powerful and efficient tool - which we ATM are not fully leveraging - to distribute bridge relays (or even the Tor browser itself) to heavily restricted areas. I am theorizing about using stenography for this purpose by providing tools for users to do this easily.


I think it’s extremely important - and an interesting challenge - to make efforts ensuring Tor (and thus free internet) is accessible to people living in countries resembling 1984’s Oceania.

Currently Tor provides bridges, which are unlisted guard relays, allowing users to connect to Tor secretly. IMHO there are a few small impediments regarding how these need to be acquired:

  • The distribution of bridge relays is somewhat centralized. Users have to contact Tor one way or another.
  • While Tor provides several creative and obfuscated options for users to request bridge relays, it remains centralized and imposes risks.
  • Users can decide to use bridges from unofficial sources, risking using a compromised relay.
  • “Chicken or egg, what came first?” Surveilled people need Tor to have free internet, but how to download Tor when you have no free internet? - GetTor exists, but I am not confident Telegram is allowed everywhere.

1. Distributing bridge relays through images using stenography

Distributing

  1. It is possible to hide bridge lines in images using stenography (I already did it).
  2. The idea is to make a tool or service allowing volunteers to easily hide bridge lines in images.
  3. These volunteers and friends of Tor (bloggers, journalists, Reddit users, memers....) would be able to hide bridge lines in their visual content.
  4. A blogger could use the steg-encoded image as banner for his blogpost, Reddit users could hide bridge lines in memes going viral,...

This way the bridge lines would be distributed all over the internet, and users wouldn’t have to take the risk contacting the Tor Project itself. But how would a user retrieve a bridge?

Retrieving

  1. Users searching for bridges can be subtly directed to websites known for containing steg-encoded images.
  2. A browser plugin could be made checking all the images on the webpage for a hidden mark or smth we include in the steg-encoded images.
  3. When the plugin detects such an image it notifies the user about it, allowing the user to retrieve the data from the image (user is not anonymous while using thisplugin).

:white_check_mark: Advantages

  • Users don’t have to contact a centralized point for bridges anymore.
  • Bridge lines can be secretly shared, while being hidden in plain sight.

:warning: Disadvantages

  • Enabling anyone to distribute images with hidden bridge lines, would also enable threat actors to distribute compromised bridge relays.
    – We could solve this by making a centralized official webpage where volunteers can upload any image and we would apply the stenography ourselves in the back-end and sign it using RSA.
    – The volunteer can download the steg-encoded image to distribute it decentralized, and the user could verify the bridge line by using a known public key.
    – This would be a perfect balance between centralized signing and decentralized distributing.

2. Distributing Tor itself by hiding the executable in images

There is a paper -- ["Using Digital Images to spread Executable Code on Internet"](https://subs.emis.de/LNI/Proceedings/Proceedings165/371.pdf) -- describing how to hide complete executable binaries in images using stenography.

IG in theory we could make a very small and lightweight binary using Arti, acting as a bootstrap mechanism, with the only task to download the Tor browser over Tor or launch an Arti proxy routing the network traffic of the user through Tor.

This way we could distribute Tor even in highly surveilled states.

WDYT? Would this be possible?

1 Like

The mayor challenge distributing bridges is how to make it easy for users to find one that is not blocked and hard for censors to don’t get the full list of bridges.

How will your mechanism prevent censors from finding all those bridges? Censors might use your plugin to crawl the web in search of bridges and just block all of them.

2 Likes

That’s a valid point. What is the current mechanism of e.g Defend yourself against tracking and surveillance. Circumvent censorship. | Bridge Info to prevent censorship? What would stop someone from making a basic scraper auto-blocking the bridge on that page?

We have iterated over different solutions to the https distributor (https://bridges.torproject.org/). Currently what we do is to distribute different bridges every day and us the IP address of the requester to hand different bridges over different networks. It is not a perfect solution, but better than our previous solution based on captchas.

We try multiple strategies and see what works better were. Our most ambitious one is lox, but is still a work in progress: The Tor Project / Anti-censorship / lox · GitLab

2 Likes

Great, thanks for the reply. Lox sounds cool. I am planning on making some contributions to the anti-censorship projects – and Lox and Rdsys in particular because those have my interest.

I made a first small MR in Lox, I’ll still have to study the papers related to Lox more to understand the concept more before being able to make more contributions.

Asked some follow-up questions in Matrix.