[tor-talk] Secure way to set time using Hidden Service descriptors

bancfc at openmailbox.org bancfc at openmailbox.org
Thu Sep 11 00:15:16 UTC 2014

Hi. As you may already know, NTP doesn't work over Tor and even if it 
did its untrusted and unauthenticated design leaves systems open to 
clock skew attacks that could unmask hidden services. What are your 
thoughts on having an anonymity distro, that Torrifies all traffic, 
depend on Hidden Service descriptors for secure timesyncing purposes?

N.B. I have suggested a mechanism that Tor itself incorporate a 
mechanism to broadcast time from relays to clients, but until this is 
realized I'm thinking that the proposed alternative is a good drop in.

The only weakness identified is that if a Hidden service forges its 
descriptor timestamp deliberately, it could perform a time replay attack 
within an 18 hour window. How serious is this?


My proposal is to have the time synchronizer daemon query the DHT for 
specific Hidden Service descriptors from the HSDir Authorities without 
actually connecting to them and calculate a more finegrained time to 
set. Here is why I think its a good idea:

* Descriptors contain a timestamp field which shows the time they are 
generated.Time reported is number of microseconds since 1970.
* Descriptors are signed by the HS and cannot be spoofed by the 
* Descriptors are refreshed hourly.
* A "malicious" HS that want to fool our time check has to go out of its 
way and forge the timestamp in its descriptor. If they are doing this by 
just running with a wrong clock, they will make themselves inaccessible.
* According to rend-spec, the damage is much limited (only and 18 hour 
window) before HSDir Authorities reject these forgeries.
* There does exist stable, available and friendly HS besides the TPO one 
that was taken down. The only addresses that will be used are those of 
trusted organizations that will not carry out the forging attacks 
described above. These will be Whistleblowing and Freedom friendly 
sites. Some suggestions: Wikileaks, RiseUp (each service they provide 
has a unique HS address assigned), TheNewyorker's SecureDrop service and 
probably more.
* The way to go about this is to fetch descriptors without connecting. 
(how? please describe if it can be done. Its probably best so we don't 
overload these organization's hidden servers)
* The timestamps will be averaged to get a more accurate reading.

More information about the tor-talk mailing list