[tor-bugs] #26288 [Core Tor/Tor]: prop289: Implement authenticated SENDME
Tor Bug Tracker & Wiki
blackhole at torproject.org
Thu Feb 28 00:26:55 UTC 2019
#26288: prop289: Implement authenticated SENDME
-------------------------------------------------+-------------------------
Reporter: dgoulet | Owner: dgoulet
Type: enhancement | Status:
| needs_revision
Priority: Medium | Milestone: Tor:
| 0.4.1.x-final
Component: Core Tor/Tor | Version:
Severity: Normal | Resolution:
Keywords: prop289, 035-roadmap-master, 035 | Actual Points:
-triaged-in-20180711, prop289-assigned- |
sponsor-v, 041-proposed-on-roadmap, network- |
team-roadmap-2019-Q1Q2 |
Parent ID: | Points: 21
Reviewer: nickm | Sponsor:
| SponsorV
-------------------------------------------------+-------------------------
Changes (by teor):
* status: needs_review => needs_revision
Comment:
I reviewed the protocol parts of this patch:
Phase 3 of the transition plan requires old clients and relays to download
a consensus so they learn that they should stop trying to connect to the
network. But since 0.2.8, clients (and censored relays that can't access
any DirPorts) will try to use the ORPort to download a consensus. But
ORPort circuits from legacy clients will fail during phase 3.
Here's what I think we need to do:
1. always allow legacy sendmes for BEGINDIR for the consensus, and
everything that is required to validate a consensus:
* authority certificates,
* relay descriptors (for bridge clients),
* anything else?
2. Revise the transition plan, so it includes the protover changes and the
consensus parameter changes
3. Don't remove the section about extensive testing using chutney:
{{{
- We'll want to do a bunch of testing in chutney before flipping the
- switches in the real network: I've long suspected we still have bugs
- in our sendme timing, and this proposal might expose some of them.
}}}
4. Do the chutney tests now, and do them again when we want to implement
each phase on the public network
The spec and the code are also out of sync: the spec talks about FlowCtrl,
but the code doesn't have FlowCtrl.
Here are the changes I think we need to make:
1. Add FlowCtrl=1 to the protocols advertised by relays in C
2. Add FlowCtrl=1 to the protocols advertised by relays in Rust
3. Clarify "FlowCtrl" in the spec:
{{{
Tor clients and relays that don't support this protover version from
the
consensus "required-client-protocols" or "required-relay-protocols"
lines
will exit and thus not try to join the network. Here is the proposed
value:
"FlowCtrl"
Describes the flow control protocol at the circuit and stream level.
If there is no FlowCtrl protocol version, tor supports the
unauthenticated
flow control features from its supported Relay protocols.
}}}
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/26288#comment:19>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list