Unify (access to) the Tor Browser signaling channels?
Right now Tor Browser includes three-ish signaling channels:
-
Snowflake uses domain fronting (plus, recently, utls) to reliably reach the Snowflake broker.
-
Snowflake has a backup signaling channel, which routes traffic through google amp cache if you configure it to use that instead of the main domain fronting approach.
-
Tor Browser uses its own domain fronting mechanism, moat, to help the user reach bridgedb/rdsys to learn what bridges to use, to fetch bridges, and later to support the 'subscription model' plans.
It is sad that Tor Browser can't use the AMP cache mechanism to do moat. It's also sad that Snowflake can't use the browser itself to make the request to the broker. And in the future, when we've added a few more signaling channels and we've added a few more pluggable transports (like conjure) that come with their own signaling options, it will be even weirder that they are all isolated from each other.
The destination we're heading toward is that every component in Tor Browser needs to implement all of these signaling options for itself if it wants them available to it. Can we find a way to do better?