[tor-bugs] #16861 [Tor]: Pad Tor connections to collapse netflow records
Tor Bug Tracker & Wiki
blackhole at torproject.org
Sun Aug 23 02:03:52 UTC 2015
#16861: Pad Tor connections to collapse netflow records
-----------------------------+--------------------------
Reporter: mikeperry | Owner: mikeperry
Type: enhancement | Status: needs_review
Priority: normal | Milestone:
Component: Tor | Version:
Resolution: | Keywords:
Actual Points: | Parent ID:
Points: |
-----------------------------+--------------------------
Comment (by mikeperry):
Ok, I have pushed an updated version of the tor-dev proposal (with some
change history) to:
https://gitweb.torproject.org/user/mikeperry/torspec.git/tree/proposals
/xxx-netflow-padding.txt?h=netflow_padding
I also pushed new code branches that add tests and fix several issues. As
one commit:
https://gitweb.torproject.org/mikeperry/tor.git/commit/?h=netflow_padding-
squashed2
The old netflow_padding-squashed branch still preserves history, in case
Nick wants to see the delta since last review (though it is probably
actually larger and harder to read than the single-commit version, due to
refactoring into channelpadding.c). I will continue to preserve history in
netflow_padding-squashed, to ease future reviews.
Here is a summary of the issues in the code that I'd like some input on,
if possible. Each of these has one or more matching XXX comments in the
patch:
1. Still not sure if I'm setting timestamp_active_highres in the places
that accurately reflect network activity
2. Not sure how to best handle libevent timers. Can we check how many are
outstanding? How? Should we remove timers in the case where traffic
arrives before the timer expires (which eliminates the need for it), or
will that be slower? Do we really need an auxiliary data structure?
3. Am I actually leaking pad_event still? Do I need to free it myself in
the callback?
4. Am I setting has_been_used_for_nondir_circs in the right places? (And
how/why does Chutney complete a circuit without a valid channel for it???)
5. I still need to test this on PT bridges, to see if the is_canonical
test fails for them.
6. I added a ReducedConnectionPadding torrc option to reduce padding (for
mobile users). Unfortunately, since padding is bidirectional, I don't
currently have a way to fully disable padding that the server sends other
than closing the OR connection earlier. With the current values, this
should reduce the worst-case per-connection padding overhead from ~180KB
to ~18KB (while still preventing multiple netflow records from being
created for the duration of the shorter connection if the relay sends
padding). Is this a problem, or a feature? The only alternative seems to
be to create sub-fields of CELL_PADDING to communicate padding preferences
to the relay..
7. Do we want any more statistics (like average per-orconn padding stats)
exported in extra-info?
8. Karsten is still working with me to tune the rephist.c stat parameters
for optimal information reduction.
I think all of the other comments from nickm, Yawning, and Karsten have
been addressed.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/16861#comment:18>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list