Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICID or OCID? #2926

Closed
mikkelfj opened this issue Jul 23, 2019 · 3 comments · Fixed by #3149
Closed

ICID or OCID? #2926

mikkelfj opened this issue Jul 23, 2019 · 3 comments · Fixed by #3149
Labels
-transport editorial An issue that does not affect the design of the protocol; does not require consensus.

Comments

@mikkelfj
Copy link
Contributor

End of section 18, transport

A client MUST NOT include an original connection ID, a stateless reset token, or a preferred address. A server MUST treat receipt of any of these transport parameters as a connection error of type TRANSPORT_PARAMETER_ERROR.

It seems the term is "initial connection ID" not "original connection ID", at least I can't find it defined anywhere in transport.

@mnot mnot added -transport editorial An issue that does not affect the design of the protocol; does not require consensus. labels Aug 6, 2019
@mnot mnot added this to Editorial Issues in Late Stage Processing Aug 6, 2019
@MikeBishop
Copy link
Contributor

Two different things, but you're probably right that they should both be explicitly defined:

  • The "Original destination connection ID" is the DCID used in the client's very first Initial packet. If the server responded with a Retry, the server needs to:
    • include the ODCID in the Retry packet to verify the Retry packet came from something on-path
    • include the ODCID in the eventual handshake's transport parameters to verify that the Retry packet originated from the server or something cooperating with it, not a MITM
  • The "Initial connection ID" is the DCID used in the client's Initial packet to which the server responded with an Initial. This CID determines the keys used for Initial packets throughout the handshake. (But see Do Initial secrets change after Retry packet? #2823.) This CID might have been server-chosen (from a Retry) or client-chosen (no Retry).

If there's no Retry packet, they refer to the same CID, but I don't think there's a reference to the ODCID outside the context of a Retry.

@martinthomson
Copy link
Member

I think that we already concluded this in #3011.

Late Stage Processing automation moved this from Editorial Issues to Text Incorporated Oct 22, 2019
@MikeBishop
Copy link
Contributor

This is a separate issue, about definition of these terms; #3011 is about whether these need to be separate concepts depending on the outcome of other issues.

@mikkelfj notes that the term "original connection ID" appears only to say that a client MUST NOT send one, and that literal string appears nowhere else in the document except the changelog. This refers to the transport parameter original_connection_id, whose definition matches the description of the "Original Destination Connection ID" field in Retry and references Retry, but doesn't use that term.

I'd suggest using the names of the prohibited TPs in stating the client restriction, and referencing the "Original Destination Connection ID" field by name from the TP definition.

@MikeBishop MikeBishop reopened this Oct 24, 2019
Late Stage Processing automation moved this from Text Incorporated to Triage Oct 24, 2019
@mnot mnot moved this from Triage to Editorial Issues in Late Stage Processing Oct 27, 2019
Late Stage Processing automation moved this from Editorial Issues to Text Incorporated Oct 29, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-transport editorial An issue that does not affect the design of the protocol; does not require consensus.
Projects
Late Stage Processing
  
Issue Handled
Development

Successfully merging a pull request may close this issue.

4 participants