[tor-bugs] #33931 [Applications/Tor Browser]: obfs4 bridges are used instead of meek if meek is selected in Tor Browser for Android alpha
Tor Bug Tracker & Wiki
blackhole at torproject.org
Fri May 1 06:48:27 UTC 2020
#33931: obfs4 bridges are used instead of meek if meek is selected in Tor Browser
for Android alpha
-------------------------------------------------+-------------------------
Reporter: gk | Owner: tbb-
| team
Type: defect | Status:
| needs_review
Priority: High | Milestone:
Component: Applications/Tor Browser | Version:
Severity: Normal | Resolution:
Keywords: tbb-mobile, tbb-parity, tbb- | Actual Points:
regression, TorBrowserTeam202004R |
Parent ID: | Points:
Reviewer: | Sponsor:
-------------------------------------------------+-------------------------
Comment (by gk):
Replying to [comment:7 sysrqb]:
> Replying to [comment:6 acat]:
> > I did not have time to fully understand the code, but let's see. My
understanding is that the code in `CustomTorInstaller.java` cannot do the
filtering, since it's not responsible of parsing the bridges, and the
changes are needed so that the code that parses the bridges can filter
them. I hope that's correct.
>
> Correct.
>
> >
> > Ok, so in https://gitweb.torproject.org/user/sysrqb/tor-android-
service.git/commit/?h=bug33931_00&id=769b3c85de468bb23fbb891266ab6cbb9c662e13
> >
> > would it make sense to update the comment:
> > `For (1), we just pass back all bridges, the filter will occur
elsewhere in the library.`
> > to include the fact that we are also encoding the bridge type that has
to be filtered?
>
> Yes, I'll add that comment.
>
> >
> > Besides, given the `userDefinedBridgeList.length() > 5` check, I think
`userDefinedBridgeList` cannot be `"meek_lite"`, so I assume this can be
removed from the switch.
>
> Yes. I'll remove that.
>
> >
> > I guess there are no other values that could make `bridgeType=0` other
than the empty string? If we know all the possible values of
`userDefinedBridgeList` (when `bridgeType == 0`), would it make sense to
have cases for all of them, and then have a default that throws an error
(similar to the switch in https://gitweb.torproject.org/user/sysrqb/tor-
browser-
build.git/commit/?h=bug33931_00&id=91e6aec4f60783fc0008d4d3c60c29ddecafac0d)?
>
> The defined cases in this patch are the only pluggable transports we
currently use (`obfs4` and `meek(_lite)`). In the past, we had `obfs3`. I
don't think we should expand this list, but (after thinking about this a
little more) we should fail safe if the type is not recognized instead of
"all bridges" being the default. I'll add that in a fixup commit. Thanks!
I am not exactly sure if that's what you meant but I think the case where
`bridgeType` for whatever reason is still `0` at the end of
`openBridgeSream()` should be treated in `addBridgesFromResources()` in
the `throw` block. That is, there should not be a `case 0` check anymore.
Keeping that smells just like trouble we are currently dealing with. We
start to be explicit with your patches in this bug. so let's avoid
ambiguity here where we can.
> >
> > The rest looks ok to me,. I did not have time to test the patch, but
I'll start a build for that in case it's needed (it will take a while).
>
> Great, thanks for the review!
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/33931#comment:8>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list