Hello everyone,
I am working on a smartcard-based hidden service publishing solution and
since I'm tying the hidden service descriptor to the physical smartcard, I
want to make sure that the host is not asking the smartcard to generate
hidden service descriptors in advance, to be used when the card is no
longer inserted into the host/reader.
The smartcard has no internal clock or time source and it's not supposed to
trust the host it's inserted into, so I need an external trusted source
that indicates the current time period. I'm not 100% familiar with the Tor
protocol (minus the hidden service parts I've been reading about recently),
so is there any way to get a feel of what the network thinks is the current
time or the current time-period? An idea would be to fetch the Facebook
hidden service descriptor or some other trusted 3rd party hidden service at
a known address and see if the time period given to the smartcard is valid
for that Facebook descriptor too. An operator could set up one or more
trusted hidden services to match against the time-period (inside the
smartcard) before it signs a given descriptor.
Is there an easier way? I _think_ I can download the current consensus and
check signatures on it (who signs it? how do I verify these signatures?),
then check the valid-after / valid-until fields inside. The problem with
that is its size, it's about 1.6MB - a bit hard for the card to digest that
much but doable in small chunks.
Any hints would be appreciated. Thank you!
Razvan
--
Razvan Dragomirescu
Chief Technology Officer
Cayenne Graphics SRL