[tor-bugs] #17178 [Tor]: Rendezvous Single Onion Services: One-Hop Intro Point and Rendezvous
Tor Bug Tracker & Wiki
blackhole at torproject.org
Tue Feb 2 15:16:45 UTC 2016
#17178: Rendezvous Single Onion Services: One-Hop Intro Point and Rendezvous
-------------------------------------------------+-------------------------
Reporter: teor | Owner:
Type: enhancement | Status:
Priority: High | needs_review
Component: Tor | Milestone: Tor:
Severity: Normal | 0.2.8.x-final
Keywords: 028-triaged, tor-hs, | Version:
TorCoreTeam201602 | Resolution:
Parent ID: | Actual Points:
Sponsor: SponsorU | Points: large
-------------------------------------------------+-------------------------
Comment (by asn):
Replying to [comment:31 teor]:
> I finished #17625 and #17358, but #17788 is large and I want to do it on
a separate branch.
>
> My branch feature-17178-rsos is ready for review on
https://github.com/teor2345/tor.git
Looked at the code some more.
Please see my branch `feature-17178-rsos` for a unittest on the poisoning
functionality.
Also, I feel a bit uneasy about code like this:
{{{
+ if (!options->RendezvousSingleOnionServiceNonAnonymousServer) {
+ service->next_upload_time += crypto_rand_int(2*rendpostperiod);
+ }
}}}
It's a bit like we are treating location-hidden services as a special
case, whereas we should probably have it be the default case. I don't mind
the specific snippet above, but maybe we could functionify the RSOS option
check to also make it a bit nicer (since it's huge and unreadable). Maybe
we could put it in a function `service_has_no_location_hiding()` (or some
nicer name please).
Similarly I don't like:
{{{
#ifndef NON_ANONYMOUS_MODE_ENABLED
- tor_assert(!(circuit->build_state->onehop_tunnel));
+ if (!get_options()->RendezvousSingleOnionServiceNonAnonymousServer) {
+ tor_assert(!(circuit->build_state->onehop_tunnel));
+ }
#endif
}}}
these asserts used to make the code look terrible, and now they are worse.
The number of negative clauses in those asserts makes it even more
confusing. Do you think we could functionify those asserts similar to
`assert_circuit_ok()`? Also, shouldn't we assert that if we are in RSOS
mode, '''it is''' a one hop tunnel?
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/17178#comment:33>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list