[tor-bugs] #25153 [Core Tor/Tor]: Specify how PrivCount in Tor statistics are configured and interpreted

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Apr 19 04:37:26 UTC 2018


#25153: Specify how PrivCount in Tor statistics are configured and interpreted
-------------------------------------------------+-------------------------
 Reporter:  teor                                 |          Owner:  teor
     Type:  task                                 |         Status:
                                                 |  assigned
 Priority:  Medium                               |      Milestone:  Tor:
                                                 |  unspecified
Component:  Core Tor/Tor                         |        Version:
 Severity:  Normal                               |     Resolution:
 Keywords:  needs-proposal, privcount,           |  Actual Points:
  034-triage-20180328, 034-removed-20180328      |
Parent ID:  #22898                               |         Points:  5
 Reviewer:                                       |        Sponsor:
                                                 |  SponsorQ
-------------------------------------------------+-------------------------

Comment (by teor):

 I think I have worked out how we can do PrivCount in Tor version upgrades.

 We can safely add counters to an existing PrivCount in Tor deployment if
 we increase the noise added by older versions (or turn them off if they
 are too old). If we specify a noise ratio for each stats version in the
 consensus, then we can increase the noise in older versions each time we
 release a new version. If we removed counters, we would just accept the
 excess noise (which is safe), or not increase the noise as much when we
 add the next counter.

 Two further thoughts on PrivCount in Tor:

 1. Each counter we add will add more noise. To get the same relative
 noise, we can add more collecting relays. I wonder if we can calculate how
 much consensus weight we need to add per counter.

 2. We can discover relays that submit out of range data without
 specialised oblivious computation:
 a) the tally reporters do an aggregation round where each relay is in its
 own partition
 b) to protect relays which actually reported statistics, each tally
 reporter adds enough noise to hide the largest valid relay
 c) if a relay's total is large enough (4 or 5 sigmas away from the mean,
 positive or negative), it is probably bad. 4 sigmas is 1 in 16,000, or a
 38% probability of a false positive for 6000 relays. So we might need 5
 sigma if we ever deploy to the whole network. See
 https://en.m.wikipedia.org/wiki/Normal_distribution#Standard_deviation_and_coverage

 If we ran out of bounds detection before every aggregation, we could use
 it to detect grossly inadequate noise. Which would make it safe to collect
 protocol warnings even if we get the action bounds (expected activity for
 a single client) wrong.

 But per-relay partitions enable an attack where you push a client's
 activity on a guard over the threshold, so the guard is excluded from the
 stats. We could set the exclusion threshold so high that it's physically
 impossible to have that many events.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25153#comment:7>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list