Almost all guards will be directory guards. AccountingMax can disable tunnelled directory fetches, as can DirCache 0.
Almost all clients tunnel connections over the ORPort, some obscure configs use the DirPort. (We want to fix this in #18483.) Relays fetch directory documents over HTTP.
I suggest that we compose the set of UTOPIC guards based on addresses that are reachable and preferred (or, if there are no guards with preferred addresses, those guards that are reachable). I suggest that we use the same mechanism with DYSTOPIC guards, but add a port restriction to 80 & 443 to all the other restrictions. (This may result in the empty set.) We already accept that that set of guards can change when the consensus changes (they can disappear, or lose the guard flag). Therefore, it seems trivial to also allow guard set changes when ReachableAddresses or similar options change.
This isn't how Tor works - it tries multiple guards simultaneously. (See below for details.) Can we rework this calculation to take that into account?
Or that tor can get a hint about which ports it can access based on which ports it used to bootstrap. (See below for details.)
What are we protecting against? It does provide a unique fingerprint to the censor, and the more guards we try from a pre-selected list, the more unique that fingerprint is. But if client packets never get to the guard, then the client can't even be identified by the guard. Why such a large list of guards? Apart from the fingerprinting issue (which I think gets worse with a larger list, at least if it's tried in order), I wonder why we bother trying such a large UTOPIC guardlist. Surely after you've tried 10 guards, the chances that the 11th is going to connect is vanishingly small. (Unless it's on a different port or netback, I guess.) And if our packets are reaching the guard, and being dropped on the way back, we have to consider the load this places on the network. Client Bootstrap The proposal ignores client bootstrap. There are a limited number of hard-coded authorities and fallback directories available during client bootstrap. The client doesn't select guards until it has bootstrapped from one of the 9 authorities or 20-200 fallback directories. Bootstrap / Launch Time The proposal calculates bootstrap and launch time incorrectly. The proposal assumes that Tor attempts to connect to each guard, waits for failure before trying another. But this isn't how Tor actually works - it sometimes tries multiple connections simultaneously. So summing the times for individual connection attempts to each guard doesn't provide an accurate picture of the actual connection time. When bootstrapping in 0.2.7 and earlier, tor will try an authority, wait up to 10 seconds for it to fail, then try another. Then there's a 60 second wait before the third authority, but at that point the user has likely lost interest. In 0.2.8, tor connects to authorities and fallbacks concurrently. It will try 3 fallbacks and 1 authority in the first 10 seconds, and download from whichever one connects first So 0.2.8 is far more likely to connect within a few seconds. In all current versions, tor then downloads the consensus (~1.5MB, could take 10 seconds or more), and chooses directory guards. Then it simultaneously connects to 3 directory guards to download certificates and descriptors. The time it takes tor to work out if a connection to a directory guard has succeeded happens simultaneously with other directory guard timeouts. So under this proposal, it would really take tor: 10 seconds for initial bootstrap 20 seconds (or more) to download the consensus 600 seconds / 3 directory guards = 200 seconds to exhaust its UTOPIC guardlist (tor skip the first two phases if it has a live consensus) Can we revise the proposal to take this into account? Other Considerations We're considering increasing the 10 second stream attach timeout to support users on slow and unreliable network connections (#16844). We should think about the impact of that on this proposal - I'd hate to double the time it takes tor to exhaust its UTOPIC guardlist. Tim Tim Wilson-Brown (teor) teor2345 at gmail dot com PGP 968F094B teor at blah dot im OTR CAD08081 9755866D 89E2A06F E3558B7F B5A9D14F |
Attachment:
signature.asc
Description: Message signed with OpenPGP using GPGMail
_______________________________________________ tor-dev mailing list tor-dev@xxxxxxxxxxxxxxxxxxxx https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev