Dealing with v2 hidden service descriptors, how does a tor client get the list of HSDIR are responsible for a certain onion address so it can contact them for descriptor of the hidden service?.
According to rend-spec.txt the list of the responsible HSDIR for a particular hidden service changes almost in every 24.
Frank Young pfcodes@gmail.com writes:
Dealing with v2 hidden service descriptors, how does a tor client get the list of HSDIR are responsible for a certain onion address so it can contact them for descriptor of the hidden service?.
According to rend-spec.txt the list of the responsible HSDIR for a particular hidden service changes almost in every 24.
This is unforunately not very well explained in rend-spec.txt.
You can find more information about this in proposals/114-distributed-storage.txt , and in section 4.4.3 in Karsten's PhD thesis "Privacy-enhancing Technologies for Private Services" (http://freehaven.net/anonbib/cache/loesing2009thesis.pdf).
Patches for rend-spec.txt that include the missing information would be awesome :)
A Tor client generates the desc_id for the v2 hidden service it would like to query. It did selects the 3 HSDIR from the router list which are found directly after the position of the desc_id when the routers are sorted by their identity digest (hash of their onion public key). I took me quite a while to figure out exactly how this works from the relatively sparse info in the rend-spec.txt.
I just put up a Gist with the python implementation of desc_id calculation. It should be pretty straightforward using STEM to sort list of OR's with the HsDir flag by identity_digest and determine which 6 are responsible at the current time.
https://gist.github.com/DonnchaC/5451637
On Wed, Apr 24, 2013 at 11:23 AM, Frank Young pfcodes@gmail.com wrote:
Dealing with v2 hidden service descriptors, how does a tor client get the list of HSDIR are responsible for a certain onion address so it can contact them for descriptor of the hidden service?.
According to rend-spec.txt the list of the responsible HSDIR for a particular hidden service changes almost in every 24. _______________________________________________ tor-dev mailing list tor-dev@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
Thanks for your explanations, but my interest is not on the calculation of the descriptor id. I'm actually interested in getting the list of the responsible HSDIR for the hidden service after i have calculated the descriptor ID. This is not fully explained in the documents. According to the specifications, the identity digest of of all HSDIR should be sorted inclusive of my calculated descriptor id and the next three HSDIR that immediately appears after the descriptor id are the responsible HSDIR but this doesn't seems to be true for two reasons.
[1] The calculated descriptor id is base32 encoded unlike the identity digests which are base64 encoded. [2] The calculated descriptor ID is 32 characters long unlike the identify digest of the HSDIR which are mostly 27 ( the shortage was due to the stripping of trialling "=" from the digest. do we have to append these before doing the sorting?).
In the tor source code, the comparison was done using the binary based form of the descriptor ID( non base32 encoded descriptor ID) [ hid_serv_get_responsible_directories( ) in routerlist.c ]
On 4/24/13, Donncha O' Cearbhaill donnchaocearbhaill@gmail.com wrote:
A Tor client generates the desc_id for the v2 hidden service it would like to query. It did selects the 3 HSDIR from the router list which are found directly after the position of the desc_id when the routers are sorted by their identity digest (hash of their onion public key). I took me quite a while to figure out exactly how this works from the relatively sparse info in the rend-spec.txt.
I just put up a Gist with the python implementation of desc_id calculation. It should be pretty straightforward using STEM to sort list of OR's with the HsDir flag by identity_digest and determine which 6 are responsible at the current time.
https://gist.github.com/DonnchaC/5451637
On Wed, Apr 24, 2013 at 11:23 AM, Frank Young pfcodes@gmail.com wrote:
Dealing with v2 hidden service descriptors, how does a tor client get the list of HSDIR are responsible for a certain onion address so it can contact them for descriptor of the hidden service?.
According to rend-spec.txt the list of the responsible HSDIR for a particular hidden service changes almost in every 24. _______________________________________________ tor-dev mailing list tor-dev@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev