ArticleslgStudy

computer science

Snowflake (software)

Snowflake (software) is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Snowflake (software) rather than just read about it. In short: Snowflake is a software package for assisting others in circumventing internet censorship by relaying data requests. Snowflake proxy nodes are meant to be created by people in countries where Tor and Snowflake are not blocked.

Snowflake (software) — main illustration
Snowflake (software) — illustration

Key takeaways

  • Snowflake (software) belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Snowflake (software) to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Snowflake (software) from memory before moving on to harder problems.

Reference excerpt

Snowflake is a software package for assisting others in circumventing internet censorship by relaying data requests. Snowflake proxy nodes are meant to be created by people in countries where Tor and Snowflake are not blocked. People under censorship then use a Snowflake client (packaged with the Tor Browser and Onion Browser) to access the Tor network, using Snowflake relays as proxy servers. Access to the Tor network can in turn give access to other blocked services (like blocked websites). A Snowflake proxy can be created by either installing a browser extension, installing a stand-alone program or browsing a webpage with an embedded Snowflake proxy. The proxy runs after the user has voluntarily enabled it and the browser or program is connected to the internet. In contrast to regular VPNs and proxy services, creating a Snowflake proxy does not require port forwarding or having a dedicated IP address, with simply installing a browser extension being enough most of the time. The ease and accessibility of creating proxies increases the difficulty of blocking their IP addresses due to the large number of them in existence. As of 2024, Snowflake proxies are hosted on about 140000 unique IP addresses concurrently. The average number of users that use Snowflake to connect to Tor is 35000 and 29 TB of their traffic is relayed by Snowflake proxies daily.

History Snowflake was originated by Serene, a hacker and former Google engineer and concert pianist. It was inspired by Flash proxy, a similar censorship circumvention system. The name "Snowflake" was coined as her metaphor for a large number of ephemeral proxies in relation to "ICE Negotiation". Three programmers published the first version in January 2016. In 2019, it became available as a browser extension for Firefox and Chrome. It can also be run on derived browsers, such as Brave and Microsoft Edge. In February 2023 a thoroughly upgraded, stand-alone version dubbed Snowstorm was released; written in Rust and funded by the Open Tech Fund, beta testing is by invitation.

Function

Normal internet data packages come labelled with the original source and the final recipient of the data. For example, a package containing the encrypted text of a website would be labelled with the destination (the IP address of the reader's computer), and the source (the IP address of the website's server). This means that even if the actual content is encrypted, a censor can identify and block all packages from certain sources. The Tor network can be used to access such blocked sites by acting as a proxy, covering the real destination address of the user's request. In order to prevent circumvention, censors may try to disable direct access to Tor by blocking connections to its relays, which are publicly known. Snowflake provides covert, indirect access to Tor. A Snowflake client is provided with the IP address of a currently-active Snowflake proxy by asking a broker server, which in turn uses domain fronting to pretend to be a major website. The client then talks directly to the Snowflake proxy, which relays into the Tor network. The traffic looks like ordinary peer-to-peer traffic, such as that used by many videoconferencing apps. A Snowflake proxy runs whenever the browser or program is connected to the internet. If the proxy host has a dynamic IP, the proxy will change its IP address over time. Snowflake proxies are thus used as Tor entry nodes, not as exit nodes. Tor exit nodes might face legal action in the country in which they are hosted if they relay content that is illegal in that jurisdiction. It is unlikely that Snowflake proxy hosts could face such liabilities, since they do not know what content they are relaying. There are, however, countries where using Tor for any purpose is illegal, such as Russia and Iran.

Deployment Snowflake uses WebRTC to allow browsers to communicate directly with one another. Either installing a browser extension, or keeping a tab open to a webpage with the right embedded code, causes one's browser to act as a proxy. Embedding a Snowflake badge in a website allows visitors to make their browser into a proxy, exactly as installing the extension does, but by clicking a button on the website rather than by installing software. Snowflake can also be run as a stand-alone program in a Docker container. Proxying traffic increases the proxy host's bandwidth usage, which may be a problem for those with bandwidth limits on their internet plans. In practice, hosting a Snowflake proxy does not seem to appreciably slow one's internet connection or disrupt browsing.

Countermeasures Countermeasures believed to be currently in use against Snowflake from Russia include browser fingerprinting Snowflake hosts and then blocking them. Censors may also install and use Tor, then block all the IP addresses offered as Snowflake servers. Both of these techniques are weakened when there are larger numbers of servers. Censors may attempt to block the broker's IP address. To circumvent this, the Snowflake client utilizes domain fronting. This makes it infeasible for the censor to block a single website without blocking all the other websites hosted on the same cloud service. Google Cloud Platform and Amazon's AWS are examples of services that host hundreds of thousands of websites. Blocking all the servers of one of these major hosts would have disruptive side effects. However, the cloud provider can and often does block domain fronting. If overseas connections from data centers are allowed, but residential and mobile services are restricted to local connections, then Tor bridges may be secretly and illegally set up in local data centers. When a state shuts down access to foreign internet connections altogether, essentially cutting the country off from the global internet, Snowflake and other internet anonymity tools are defeated. This method has been applied by countries such as Iran, Ethiopia and Belarus, although it can carry a severe negative impact to the economy (in Iran in 2022, the cost was estimated at $37 million US a day), so these interventions are usually restricted to short periods of time.

… excerpt ends here. Continue reading the full article.

Illustrations

Snowflake (software) illustration
Snowflake (software) illustration
Snowflake (software): The end-user asks the broker server for a Snowflake proxyThe broker finds a Snowflake proxy that is availableThe broker replies to the end-userThe end-user contacts the Snowflake proxy, with a direct peer-to-peer connectionThe data request is relayed through the Tor network to the destination server (for instance, the website the end-user is browsing)
The end-user asks the broker server for a Snowflake proxyThe broker finds a Snowflake proxy that is availableThe broker replies to the end-userThe end-user contacts the Snowflake proxy, with a direct peer-to-peer connectionThe data request is relayed through the Tor network to the destination server (for instance, the website the end-user is browsing)

Worked examples

Example 1 — a first encounter with Snowflake (software)

Start with the simplest possible case. Write down what Snowflake (software) claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Snowflake (software) before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Snowflake (software) ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Snowflake (software)

In research
Snowflake (software) appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Snowflake (software) in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Snowflake (software) is common in secondary-school and first-year university syllabi. It links to neighbouring topics 2016 software, Tor (anonymity network), so understanding it makes those chapters shorter.
In everyday life
Look for Snowflake (software) outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Snowflake (software) in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Snowflake (software) means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Snowflake (software) out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Snowflake (software) in simple terms?

Snowflake is a software package for assisting others in circumventing internet censorship by relaying data requests. Snowflake proxy nodes are meant to be created by people in countries where Tor and Snowflake are not blocked.

Why does Snowflake (software) matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Snowflake (software)?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Snowflake (software).

Tags

  • 2016 software
  • Tor (anonymity network)

Keep exploring