George Kadianakis transcribed 2.1K bytes:
Hello Nick, isis and Mike!
It seems like some Thoughtworks folks (from here on referred to as FRITO [0]) are interested in helping us with Tor hidden services development for 4 weeks or so. They start early next week! :)
Hello Fan, Reinaldo, Ivan, Tania, and Ola,
Thanks for offering to help us!
They were looking for a coding project that is tractable within a month given a team of four people. Also, it should be fun, interesting and be related to hidden services.
One of the projects we discussed and found potentially fitting was proposal 259: https://gitweb.torproject.org/torspec.git/tree/proposals/259-guard-selection...
Proposal #259 isn't specifically related to HSes, but is about guard selection in general. At the time I wrote it, I was only designing the algorithms to be used for "first-layer" guard selection, that is, the guard(s) to which a client-like thing directly connects. Currently, the idea for HSes is to have multiple (variously sized) layers of guards rotating at various (differing) timings. See proposal #247: https://gitweb.torproject.org/torspec.git/tree/proposals/247-hs-guard-discov...
However, some subset of the prop#259 algorithm could easily be separated out to function for choosing Nth-layer guards as well. This is probably trivial to do, but I honestly haven't given it any thought yet.
It is my undertanding that the next steps here involve implementing the various proposed algorithms and evaluating how they cope in some simulated scenarios. Nick and Isis started working on this in Python here: https://github.com/isislovecruft/guardsim You can find the scenarios that need to be tested here: https://github.com/isislovecruft/guardsim/blob/master/doc/stuff-to-test.txt
This project is mostly done, although it could still use an extra (few) set(s) of eyes looking at it and trying to figure out how to optimise the algorithm further. I've updated doc/stuff-to-test.txt with how to run the various simulated attack scenarios, and marked other things with TODOs.
Isis and Nick, are you currently working on the guardsim code? Would you be OK if it was taken over by FRITO? Any advice for them?
I have plenty of other work to do, and would absolutely welcome help on this, if doing so interests FRITO.
Also, is there a ticket we should be using for this project? If not, I will make one ASAP.
https://bugs.torproject.org/17262