A first draft spec of the API is here. Please review! I'm finishing up the implementation of #15967 (moved) and then I'll get starting on implementing this spec.
I am posting the reply in this ticket since it seems to be more related to the topic:
isis:
This API won't be publicly accessible though, it'll be reachable through the API for #22871 (moved), and even then it's only reachable through a special meek reflector as part of #16650 (moved).
I love the idea to "Set up domain fronting for BridgeDB:. The benefits are huge as described in #16650 (moved).
However, meek has not been supported neither by Whonix nor by Tails so far. It is very likely because meek has not been packaged in to Debian as a standalone client because of its increasingly high-coupling with TBB:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764007
I will also ask Tails about why meek is not available in Tails, given that Tails does ship a Tor Browser (unlike Whonix-gateway).
Is anon-connection-wizard what Tails uses now? I'd be happy to support Tails as well (but I'd strongly prefer the connection to go through the meek reflector).
A first draft spec of the API is here. Please review! I'm finishing up the implementation of #15967 (moved) and then I'll get starting on implementing this spec.
This looks pretty good. Kathy isn't here right now, but I will ask her to take a look later. I have just a couple of comments:
I am not a fan of the verbose type strings, e.g., moat client supported transports. Maybe this is a JSON-API style thing, but I would rather use shorter, easier to compare strings such as 'type': 'client-transports'.
(you asked about this on IRC) The error response seems okay, although if there are distinct reasons for failure that would be helpful for end-users to know, please add enumerated error codes that Tor Launcher can use to pull out a localized string. The way things are now, Tor Launcher will probably not use the title or details field in the UI; maybe just log them (because we don't want to show English text to people who speak other languages).
A first draft spec of the API is here. Please review! I'm finishing up the implementation of #15967 (moved) and then I'll get starting on implementing this spec.
This looks pretty good. Kathy isn't here right now, but I will ask her to take a look later. I have just a couple of comments:
I am not a fan of the verbose type strings, e.g., moat client supported transports. Maybe this is a JSON-API style thing, but I would rather use shorter, easier to compare strings such as 'type': 'client-transports'.
Sure, I can go shorter with hyphenations. I honestly didn't know what to put there, so I just made stuff up. I'll update it.
(you asked about this on IRC) The error response seems okay, although if there are distinct reasons for failure that would be helpful for end-users to know, please add enumerated error codes that Tor Launcher can use to pull out a localized string. The way things are now, Tor Launcher will probably not use the title or details field in the UI; maybe just log them (because we don't want to show English text to people who speak other languages).
That makes sense, I'll keep the spec updated and use different error codes if I think of any cases where it might make sense to localise. (As of right now it seems more useful to log these kinds of errors on the BridgeDB server and in the browser console.)
I am posting the reply in this ticket since it seems to be more related to the topic:
isis:
This API won't be publicly accessible though, it'll be reachable through the API for #22871 (moved), and even then it's only reachable through a special meek reflector as part of #16650 (moved).
I love the idea to "Set up domain fronting for BridgeDB:. The benefits are huge as described in #16650 (moved).
However, meek has not been supported neither by Whonix nor by Tails so far. It is very likely because meek has not been packaged in to Debian as a standalone client because of its increasingly high-coupling with TBB:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764007
That makes sense, although it's unfortunate. There is a meek-client program included in meek, however, as I understand it, the TLS is more fingerprintable which is why dcf went the route of instrumenting a browser. It would be better to ask dcf about this.
I also just remembered that you actually can't do a POST /meek/* to BridgeDB unless you go through the meek reflector, because of the way the TLS termination is handled. Also FYI, this distributor relies on getting the client's IP address in an X-Forwarded-For header from the meek reflector. We could consider setting up the same moat API as its own separate distributor for clients which can't use meek, but that should be a new ticket. (Also, I'd prefer that they be separate distributors, since there's a possibility that we may need to allocate differently, or treat different automated bridge distribution clients differently, e.g. different rate limiting, in the future.)
I will also ask Tails about why meek is not available in Tails, given that Tails does ship a Tor Browser (unlike Whonix-gateway).
Thanks! I'd be curious to hear why.
Is anon-connection-wizard what Tails uses now? I'd be happy to support Tails as well (but I'd strongly prefer the connection to go through the meek reflector).
That's great! Is it being considered because Firefox is removing support for extensions? (Wasn't Tails doing something special to run Tor Launcher as a desktop app?)