[tor-bugs] #8106 [Tor]: Make .onion addresses harder to harvest by directory servers

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Apr 26 20:18:17 UTC 2013


#8106: Make .onion addresses harder to harvest by directory servers
-----------------------------+----------------------------------------------
 Reporter:  asn              |          Owner:                    
     Type:  defect           |         Status:  new               
 Priority:  major            |      Milestone:  Tor: 0.2.5.x-final
Component:  Tor              |        Version:                    
 Keywords:  SponsorZ tor-hs  |         Parent:                    
   Points:                   |   Actualpoints:                    
-----------------------------+----------------------------------------------

Comment(by hyperelliptic):

 Replying to [comment:16 rransom]:
 > Also, the blinded base point is a function of the non-blinded public
 key.
 I understand, that's why I said that the clients will notice the attacker,
 but the server cannot check this (without knowing A -- and the whole point
 of this scheme is that the server should not know A). There is also no way
 that the server can verify that B and the other point have been multiplied
 by the same scalar -- again, that's a feature, otherwise you'd be back to
 enumeration attacks, so don't try using pairing-friendly curves on this.

 My understanding is that the nonce will be time dependent, so clients know
 the nonce and know the public key of the hidden service and everybody
 knows B. So, they can compute HB(nonce, B, pub.A) and the updated key
 parameters. I assume that they then ask the server for the information on
 Aprime = scalarmult(blindingExponent, pub.A), right? If the server stores
 the encrypted routing information under Aprime then I can override this --
 with a differnt Bprime, but there is no way to say which one is right; you
 cannot take the first one either, otherwise at least insiders knowing A
 can compute the next Aprime just a tad faster and submit that along with a
 wrong Bprime.

 Note that you need 2 different verification equations: one for the server
 (which does not know A and the nonce) and one for clients who first
 recompute Aprime and then check that the world matches, i.e. the
 verification needs 2 steps.

 I realize that you can bootstrap from this by including Bprime in the
 storage location so that the real data and the attack data get written to
 different places, but then you suddendly have twice the length.

 Could you describe what worried you about the version in which the
 basepoint does not vary?

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


More information about the tor-bugs mailing list