ioerror tells me that there are anonymity attacks when a Tor user is a flash proxy over their Tor connection, having to do with congestion and intersection.
We should at least detect when being run inside Tor browser and disable.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
As an additional measure to avoid Tor-in-Tor situations (which is not necessarily what ioerror was concerned about), maybe the facilitator should not answer requests from known Tor exits.
As an additional measure to avoid Tor-in-Tor situations (which is not necessarily what ioerror was concerned about), maybe the facilitator should not answer requests from known Tor exits.
Roger offers this command that exports exits for bridges.torproject.org:
* Block **Components.interfaces** and **Components.lookupMethod** * A fixed **userAgent** string * Regardless of the actual operating system, the browser is reporting the Windows OS * Entirely disable DOM storage * Not listing the supported MIME types * Not allowing plugins or only allowing Flash
I suppose that is enough with checking the userAgent string, but the others may be needed to decrease the amount of false positives.
I'm attaching an extended version of the proposed script (the attached one is a bit more polite and modular, but essentially does the same as the shorter version that is displayed above.
[1] The second part is to detect that the proxy is already in the Tor Network, not checking if it is running in a Tor Browser, but checking if the proxy reported IP matches with a Tor Exit node.
I'm willing to trade some false positives (and perhaps remove some false negatives) for an even simpler test. Grepping for "Permission denied" in error text strikes me as not robust. Similarly "Shockwave Flash": I don't want to couple this test too closely to the internals of Tor Browser. Checking navigator.platform seems redundant with the user-agent check.
I'll bet that the user-agent comparison already gets us almost all the way there. To that let's add the sessionStorage === null and navigator.mimeTypes.length == 0 tests, and make that the whole of the detection.
Please do the above in the form of a patch against flashproxy.js, and attach the patch to the ticket. The function should be called is_likely_tor_browser or something similar. You can add a call to this function to flashproxy_should_disable.