Flash Proxy: How To Bypass Internet Censorship Using Browser-Based Proxies

In the early 2010s, a group of scientists from Stanford University, Massachusetts Institute of Technology, The Tor Project and SRI International came up with a research paper on evading internet censorship.

Flash Proxy: How To Bypass Internet Censorship Using Browser-Based Proxies
Jovana Gojkovic
Jovana Gojkovic 5 min read
Article content
  1. Introduction
  2. How it works
  3. Useful links
  4. Frequently Asked Questions

In the early 2010s, a group of scientists from Stanford University, Massachusetts Institute of Technology, The Tor Project and SRI International came up with a research paper on evading internet censorship.

The researchers analyzed the circumvention methods and tools available at that time to create a new technique called flash proxy. Here is an outline of this approach.

Introduction

The internet was designed as a open network for data of any kind. However, nowadays, more and more countries and corporations are trying to filter traffic. Some censors block particular websites like Facebook or YouTube, while others restrict access to specific materials posted online. There are dozens of countries from all over the world, including Europe, using blocks of some kind on the internet.

Users in censored regions try to circumvent blocks using different methods, including proxies. There are several approaches to building such services, and Tor technology was used during this particular experiment.

Usually, developers on circumvention systems face three main challenges:

  1. Rendezvous protocols. A rendezvous protocol allows users in a censored region to send and receive a small amount of data to establish connections with a proxy. For example, Tor uses a rendezvous to distribute the IP-addresses of its bridges. Rendezvous protocols are used for low-rate traffic, so it is hard to block them.
  2. Proxy creation. Any circumvention system needs proxies outside of the region with the censored internet access to relay traffic between clients and target online resources. In turn, censors might try to prevent users from discovering the IP-addresses of these proxies and block these IPs. To stand against this Sybil attack, the circumvention system should be able to constantly create multiple new proxies. This is what the solution designed by the researchers aimed to do.
  3. Camouflage. When the client receives an IP address of a non-blocked proxy, they need to somehow hide this communication so that it is impossible to identify and block the session even using traffic analysis tools. This communication should be camouflaged to look like regular, allowed traffic in the form of a data exchange with an e-commerce website, or online game.

The researchers proposed a new approach to fast proxy creation.

How It Works

The key idea is to use a lot of websites to create multiple proxies with short lifespans, not exceeding a couple of minutes.

To implement this, a network of websites owned by volunteers (e.g., personal pages) is created.

NB: all of these websites are located outside of the censored region. These websites have no connection to the resources that clients want to access.

The owners of such websites install a special widget with a simple JavaScript-coded interface. Here is a sample code for the installation:

<iframe src="//crypto.stanford.edu/flashproxy/embed.html" width="80" height="15" frameborder="0" scrolling="no"></iframe>

Here is the widget:

How the widget looks

When a web browser from a censored region gets to a website with an installed widget, it starts to relay traffic, i.e., the browser itself becomes a temporary proxy. When the user leaves the website, the proxy dies without a trace. As a result, this is sufficient enough to keep the Tor tunnel open.

To use the circumvention system, you need a Tor Relay, a web browser, and some additional elements. One of them is the facilitator that accepts requests from the client and connects them with a proxy. The communication goes via transport plugins (here is the Chrome Extension) and Tor-relay to switch from WebSockets to plain TCP.

How to circumvent the block and receive access to restricted content

A typical session when using this system looks as follows:

  1. The client launches Tor, a flash proxy client (browser extension), and sends a registration request to a facilitator using the rendezvous protocol. The extension starts listening to the remote connection.
  2. The flash proxy goes online and sends the client connection request to the facilitator.
  3. The facilitator returns the registration and transmits the connection credentials to the flash proxy.
  4. The proxy connects to the client using the data from the previous step.
  5. The proxy connects to the transport plugin on Tor relay and starts a data exchange between the client and the relay.

The client never knows in advance where it will connect. The transport plugin accepts a fake destination address, which is needed only to comply with transport protocol requirements. This address is then ignored, and the tunnel to the other destination - a Tor Relay - is created.

Conclusion

The flash proxy project was in an active development stage for several years, but was discontinued in 2017. The project's source code is available here. There are now new censorship circumvention systems. One of them is the Snowflake project, which is built on the principles introduced in the flash proxy project.

Frequently Asked Questions

Once you have selected your software, you'll need to find a hosting provider. Ideally, you'll want to choose a provider that offers unlimited bandwidth and reliable uptime. This will ensure that your proxy server can handle any traffic that comes its way.

There are three main types of proxy servers: HTTP, SOCKS, and VPN.
  1. HTTP proxies are the most common type. They allow you to browse the web anonymously by hiding your IP address.
  2. SOCKS proxies are more versatile than HTTP proxies. They can be used for both browser-based and client-based applications.
  3. VPNs provide the highest level of security. They create an encrypted tunnel between your device and the VPN server, preventing anyone from spying on your traffic or tampering with it.

A web-based proxy server is a service that allows you to bypass your own internet provider and browse the internet anonymously. By using a web-based proxy server, you can mask your IP address and surf the internet without revealing your true identity

A web proxy, also known as a proxy server, is a computer system or program that provides a means for users to conceal their true IP addresses when accessing the internet. Proxy servers are often used by people who want to access blocked websites or by companies that want to monitor their employees’ internet usage.

Jovana Gojkovic

Jovana is a freelance writer who likes to focus on the practical side of different technologies: Her stories answer both the "How does it work?" and "Why is it important for me?" questions.

You can also learn more about:

11 Best Proxy Browsers
Proxies and business
11 Best Proxy Browsers

Discover the best proxy browser options to enhance your web browsing experience. Learn how to configure proxies with a top server for improved privacy and security.

Selenium Scraping With Node.js
Web scraping
Selenium Scraping With Node.js

Learn Selenium scraping with Node.js in this step-by-step guide. Discover how to set up, extract data, handle errors, and optimize performance with Infatica proxies for seamless scraping results.

Web Scraping in Java
How to
Web Scraping in Java

Discover how to perform web scraping in Java using libraries like Jsoup, Selenium, and HtmlUnit. Learn to extract and automate data collection from websites and export data efficiently.

Get In Touch
Have a question about Infatica? Get in touch with our experts to learn how we can help.