[tor-bugs] #15540 [Tor]: Increase the capacity of a HS server by using bridges after we implement Prop 188
Tor Bug Tracker & Wiki
blackhole at torproject.org
Thu Aug 27 09:46:04 UTC 2015
#15540: Increase the capacity of a HS server by using bridges after we implement
Prop 188
-----------------------------+-----------------------------------------
Reporter: s7r | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone:
Component: Tor | Version:
Resolution: | Keywords: tor-hs, prop188, tor-bridge
Actual Points: | Parent ID: #15463
Points: |
-----------------------------+-----------------------------------------
Comment (by isis):
Some minor comments and feedback.
Replying to [ticket:15540 s7r]:
> […]
> We are also under the assumption that clients building 4 hop circuits in
the network are not easily distinguished (confirmation for this would be
great).
Clients building 4-hop circuits are maybe distinguishable, so this might
not be a fair assumption.
For some time before Tor-0.2.3.x, if you think you're a guard, you would
do this by counting the number of RELAY_EARLY cells which pass through
you. However, nowadays, after an OP finishes doing all of its EXTENDs
(which are always packaged inside RELAY_EARLY cells), the OP sends some
vagueish number (totalling either 8 or 9, IIRC) of their actual RELAY
cells packaged inside RELAY_EARLY cells, in order to attempt to conceal
the length of the circuit. However, there are probably still ways to
determine the length of a circuit if you believe you're the guard (i.e. by
attempting to learn from the RT timings or something like that).
> Regardless of this and unrelated, prop 188 should be implemented anyway,
because it protects the bridge-db.
Prop!#188 might technically harm BridgeDB: if an adversary can no longer
run middle nodes, wait for things which aren't in the consensus to connect
to them, and thus passively gather a list of bridges, then the adversary's
best mode of attack falls back to attempting to enumerate bridges via
BridgeDB. (Which is fine, since we've got a pretty good plan for
preventing that, which will also soon be implemented.)
> Let's say prop 188 is implemented, so each bridge selects a Guard and
keeps it static for as long as the consensus recommends so (same behavior
as a regular Tor client). A big HS server would use bridges to connect to
the Tor network. The bridges can either be from bridge-db, or, if the HS
operator is concerned about performance and availability, the bridges can
also be high speed, dedicated and private (PublishServerDescriptor 0), or
someone can run high speed public bridges (PublishServerDescriptor 1) and
use those.
>
> According to prop 188, when used with bridges, Tor will build 4 hop
circuits:
> {{ Finally, observe that even though the circuit is one hop longer
than it would be otherwise, no relay's count of permissible RELAY_EARLY
cells falls lower than it otherwise would. This is because the extra hop
that Bob adds is done with a CREATE_FAST cell, and so he does not need to
send any RELAY_EARLY cells not originated by Alice. }}
>
> Something as follows:
> HS Server -> bridge(s) -> Guard(s) as per prop 188 -> middle ->
middle -> rendezvous
> Each bridge could be a false positive for the HS server, in case an
attacker discovers the bridge's guard.
If we implement this, or encourage people to do this, then we should
update all of our documentation which says that "it's totally safe,
legally and otherwise, to run a bridge because no traffic is exiting from
you".
> Questions:
> 1.For prop 188, who will choose and remember the bridge's Guard? The
client connecting to the bridge or the bridge itself?
The bridge chooses its guard, and uses tor's (accidental) loose-source
routing feature to transparently insert the guard into the client's
circuit. The client doesn't even have to know that she is technically
using a 4-hop circuit.
(At least, this is the way I've implemented it for #7144.)
> 2.Would it help if we could optionally add more Guards for the same
bridge (something like NumBridgeEntryGuards)?
In order to protect the bridges from being discovered, I would prefer that
bridges simply use the NumGuards parameter so that they behave (as much as
possible) like normal clients.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/15540#comment:2>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list