Opened 6 months ago

Last modified 4 months ago

#22810 needs_revision enhancement

prop224: Make the client/service extend properly to the IP/RP

Reported by: dgoulet Owned by: dgoulet
Priority: Very High Milestone: Tor: 0.3.3.x-final
Component: Core Tor/Tor Version:
Severity: Normal Keywords: tor-hs, prop224-extra
Cc: Actual Points:
Parent ID: Points: 1
Reviewer: Sponsor: SponsorR-must

Description

For a prop224 service to extend to a rendezvous point (RP) or a client to extend to a introduction point (IP), we need two things to change in the tor code.

1) The extend_info_t object needs to support a list of "extra" link specifiers that should be put in the EXTEND2 cell if present. From proposal 224:

   The hidden service SHOULD NOT reject any LSTYPE fields which it
   doesn't recognize; instead, it should use them verbatim in its EXTEND
   request to the rendezvous point.

2) The ed25519 identity link specifier (LSTYPE=03, see prop220), needs to be mandatory for both introduction and rendezvous points as detailed in prop224. So we need a way to tell the circuit subsystem that "this EXTEND2 cell is for IP or RP so put the ed25519 id in it".

Child Tickets

Change History (7)

comment:1 Changed 6 months ago by dgoulet

Status: newneeds_review

Branch: ticket22810_032_01.
Gitlab review: https://gitlab.com/dgoulet/tor/merge_requests/33

There are potential controversial changes in _two_ commits here ;).

Side note, if #22804 is merged upstream before, conflicts will arise.

comment:2 Changed 6 months ago by asn

Oh man. This is indeed some unforeseen changes that need to happen. The branch also changes lots of core circuitbuild code that I'm not very familiar with.

I'll make a naughty suggestion for the sake of forward progress:

  • For 0.3.2, we forget about this ticket, and hidden services only use link specifiers they recognize and ignore all others.
  • Then in prop224-extra, we implement the functionality of this ticket.

Do you think that's nuts? Or it might cause forward-compatibility problems? AFAIK there are no other link specifier types in the design -- I guess the next ones might be PQ stuff?

If you think that's not the right approach, I will start reviewing this branch ASAP.

comment:3 Changed 6 months ago by dgoulet

Status: needs_reviewneeds_revision

Woa, ok #22804 merged so I need to go back to the drawing board here and address the git merge conflicts.

comment:4 Changed 6 months ago by dgoulet

Keywords: circuit removed
Status: needs_revisionneeds_review

Ok I've rebased this on master.

Branch: ticket22810_032_01
Oniongit review: https://oniongit.eu/dgoulet/tor/merge_requests/3

This is missing the IPv6 extend support which we should have at the very least for hidden service.

comment:5 Changed 5 months ago by nickm

Keywords: review-group-21 added

comment:6 Changed 5 months ago by asn

Keywords: review-group-21 removed
Status: needs_reviewneeds_revision

Removing this from review-group-21 for now, since there are more important prop224 branches to review and we don't want to waste precious review points.
Let's handle this ticket after the core prop224 has been merged.

comment:7 Changed 4 months ago by dgoulet

Keywords: prop224-extra added; prop224 removed
Milestone: Tor: 0.3.2.x-finalTor: 0.3.3.x-final
Parent ID: #21888

Moving to prop224-extra. HS v3 works without this and we are too close to 032 freeze to consider something that core.

Note: See TracTickets for help on using tickets.