Skip to content

Support Snowflake bridges

Snowflake has been part of the default bridges in Tor Browser since July 2021.

Since then it became the preferred way of connecting to Tor from Iran and China. Russia still uses mostly obfs4 (not the case anymore as of 2025-05, see #20267 (closed)).

As of 2024-07-23, the Circumvention Settings API, that Tor Browser uses for its "connect assist" feature, and that we should use for Support automatic bridge retrieval (#15331), returns Snowflake bridges for China, among other places: https://bridges.torproject.org/moat/circumvention/map

Adding support for Snowflake is slightly higher priority than WebTunnel.

However, note that Snowflake is known to be slow in China: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40251

More data on how Snowflake is helping against censorship around the world: https://blog.torproject.org/snowflake-daily-operations/.

User feedback

Implementation

Backend

UI

https://www.figma.com/board/RnTAzBfkWKbOwdZxvk5xer/Pluggable-transports

  • Automatic mode
    • How many PT do we want to try?
  • Bridge configuration screen
    • Introduce layering in the UI to accommodate for more options
      • Use an accordion pattern to unfold below each radio button?
    • Support different types of bridges when "Use a default bridge"
      • Only applies to "automatic + configure bridge"
      • Explain the different bridges to help people choose the PT that is most likely to work (in the accordion)
    • Adapt "obfs4" placeholder in textarea
      • Have a separate textarea for each type of bridge in an accordion?
  • Error screen

We only help people choose the best PT when choosing a default bridge. I think it's fine because:

  • This matters most to anticensorship scenarios and people should use the "automatic mode" for that, instead of the "hiding mode".
  • In the "automatic mode" people can still use a default bridge and we explain the different PTs there.
  • For people who chose the "hiding mode", each bridge bot returns bridges in 1 type of bridge anyway. People are going to try whatever bridge bot is the easiest. Right now:
    • Email Bot returns obfs4
    • Web Bot returns webtunnel
    • Telegram Bot returns obfs4

Website

  • Update the end-user doc

Fundraising

https://gitlab.torproject.org/tpo/operations/proposals/-/issues/106

Related UX debt

As part of the same grant, it would be great to also work on other related improvements:

Edited by intrigeri
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information