Re: [Last-Call] Opsdir last call review of draft-ietf-quic-version-negotiation-10
David Schinazi <dschinazi.ietf@gmail.com> Mon, 03 October 2022 23:54 UTC
Return-Path: <dschinazi.ietf@gmail.com>
X-Original-To: last-call@ietfa.amsl.com
Delivered-To: last-call@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AF888C1526EA; Mon, 3 Oct 2022 16:54:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.107
X-Spam-Level:
X-Spam-Status: No, score=-2.107 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NCIMTF22bWsP; Mon, 3 Oct 2022 16:54:41 -0700 (PDT)
Received: from mail-vs1-xe33.google.com (mail-vs1-xe33.google.com [IPv6:2607:f8b0:4864:20::e33]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E0D52C1526E2; Mon, 3 Oct 2022 16:54:40 -0700 (PDT)
Received: by mail-vs1-xe33.google.com with SMTP id x124so4964309vsb.13; Mon, 03 Oct 2022 16:54:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=Md0Uj9WpHfPCgHeVol9UiucxDl4572gLLwt6Sl0DkDU=; b=epsPxdE8zS7wDDY+Jm8m6oUrlgjA1ryPocS0zlOcBAtTRXo1c5gWh9ns6HqUEsRBgT r4nLkuXZ601+3kFttDTPsyXEwN6iGfLnzocCynpSa2PTSS9eaOjPgrBSulyo/NBK2AwU DlMVM4G1b/TTDuoe9U6uf6hPv8npUnt8vtf3wz6uDuzdHqohOpiCcTEYPvi/b6DJKSun vTHbxmvoIJev2XFb4g0blqDmsdINd4K43+SJb6bVMBI8qXZ3KTTsumZqYBAjul3b7M4P h+Cp+Apsm548IdFvcG1Y9YslO4alAacn7QsjbVhbWczitIzHY0szM0mg0zTry9KGKWz5 uang==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=Md0Uj9WpHfPCgHeVol9UiucxDl4572gLLwt6Sl0DkDU=; b=xkUnAsb51uHk+J8bcc5anD4tmEurLiebHmudSvVGwwAl4xJGx/PN66osE9tDmI5u66 tp50U9F04EQQFSfecI1V2RW1cLBY39fvDmMvs3LT1ZxCmOaDwEq9B8+5X7EZ5CduqLr7 XAG9x3awpHofMUCpyhg7IZnszwiOAnqMnL0otKsxseYI1vdUB1W8L1tgbt24YPhuCf1L pRHwkIjMQOxv3YjSYBXqdfKY0ddbQnfui4sgy4o853ka7IMzBLC7zFf0YvIKeWXTUPxy cskMsdgT6hjxADM0zPZwE+YpUGRXviHVKIlHo6VjcrzmvnEKNr0VfhZTM+kEKwh6KJti 6bCA==
X-Gm-Message-State: ACrzQf3qXy57PaYwifzoEZqo5bDOzfpdz9Wn7axuY/9qwG8V2dM16jXb RdFz5v22TMi6W7Pja+JNWFVnInmvFbby8Seq7WA4UHSjetk=
X-Google-Smtp-Source: AMsMyM7sXhAxLbgSUCeO2LKSiw+hdfkLX4x/biaNukTrM8lyxVD7oZ2CnaTw2HnGMCL1X27EVh1hfR/AdKkuW1saBIg=
X-Received: by 2002:a67:c399:0:b0:398:4e56:4fdc with SMTP id s25-20020a67c399000000b003984e564fdcmr10432118vsj.82.1664841279407; Mon, 03 Oct 2022 16:54:39 -0700 (PDT)
MIME-Version: 1.0
References: <b020490c8b234c11a75cd5b677c60fd6@huawei.com>
In-Reply-To: <b020490c8b234c11a75cd5b677c60fd6@huawei.com>
From: David Schinazi <dschinazi.ietf@gmail.com>
Date: Mon, 03 Oct 2022 16:54:27 -0700
Message-ID: <CAPDSy+6SVsAXn4b_w9Vb=eW4XZPpQbBy=AkuqsarKV-L8_rEEQ@mail.gmail.com>
To: Qin Wu <bill.wu@huawei.com>
Cc: "ops-dir@ietf.org" <ops-dir@ietf.org>, "draft-ietf-quic-version-negotiation.all@ietf.org" <draft-ietf-quic-version-negotiation.all@ietf.org>, "last-call@ietf.org" <last-call@ietf.org>, "quic@ietf.org" <quic@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000011091805ea2a11c9"
Archived-At: <https://mailarchive.ietf.org/arch/msg/last-call/sLrWoH4ftOTAl_1tDkWbrsLNwmY>
Subject: Re: [Last-Call] Opsdir last call review of draft-ietf-quic-version-negotiation-10
X-BeenThere: last-call@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: IETF Last Calls <last-call.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/last-call>, <mailto:last-call-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/last-call/>
List-Post: <mailto:last-call@ietf.org>
List-Help: <mailto:last-call-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/last-call>, <mailto:last-call-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Oct 2022 23:54:42 -0000
Thanks! Responses inline. David On Sat, Oct 1, 2022 at 6:42 AM Qin Wu <bill.wu@huawei.com> wrote: > Hi, David: > > Thanks for taking my comments into account, one more comment to version negotiation mechanism, do you think a single error code “TRANSPORT_PARAMETER_ERROR > > ” is sufficient, do you need to distinguish different reasons for version > negotiation failure, if I am wrong, please correct me. > > please see follow up comment inline. > We currently use two errors in this document: * TRANSPORT_PARAMETER_ERROR means the transport parameter was invalid * VERSION_NEGOTIATION_ERROR means we detected a downgrade attack We believe this to be enough to differentiate failure cases. There is also an error string available from QUIC for debugging purposes. *发件人:* David Schinazi [mailto:dschinazi.ietf@gmail.com] > *发送时间:* 2022年10月1日 6:37 > *收件人:* Qin Wu <bill.wu@huawei.com> > *抄送:* ops-dir@ietf.org; draft-ietf-quic-version-negotiation.all@ietf.org; > last-call@ietf.org; quic@ietf.org > *主题:* Re: Opsdir last call review of > draft-ietf-quic-version-negotiation-10 > > > > Hi Qin, thank you for your comments, responses inline. > > > > Note to other WG members: PR 127 is completely editorial but 128 does add > > some RFC 2119 language that was previously implicit, please double-check > my work. > > > > Thanks, > > David > > > > On Fri, Sep 30, 2022 at 5:48 AM Qin Wu via Datatracker <noreply@ietf.org> > wrote: > > Minor Issues: > > 1. Section 4 introduce verson downgrade term [Qin]What the version > downgrade is? I > feel confused, does it mean when I currently use new version, I should not > fall > back to the old version? Can you explain how version downgrade is different > from version incompatible? It will be great to give a definition of version > downgrade in the first place or provide an example to explain it? > > > > It's a pretty common term of art in versioned protocols but I've defined > it in Section 4. > > https://github.com/quicwg/version-negotiation/pull/127 > > [Qin] Thanks, the proposed change looks good. > Thanks. > 2. Section 9 > said: " The requirement that versions not be assumed compatible mitigates > the > possibility of cross-protocol attacks, but more analysis is still needed > here." > [Qin] It looks this paragraph is incomplete, what else analysis should we > provide to make this paragraph complete? > > > > The paragraph is complete. It acknowledges the potential for > cross-protocol attacks > > and encourages more research in this area. > > [Qin]: If that is the case, I suggest to add some text to explain this > analysis is not in the scope of this document. > I've added "That analysis is out of scope for this document." https://github.com/quicwg/version-negotiation/commit/3b9f4e044572a81c39bedc6b8d77cedd35fbd355 > 3. Section 10 [Qin]: I am not clear > why not request permanent allocation of a codepoint in the 0-63 range > directly > in this document. In my understanding, provisional codepoint can be > requested > without any dependent document? e.g., Each vendor can request IANA for > Vendor > specific range. Secondly, if replacing provisional codepoint with permanent > allocation, requires make bis for this document, I don't think it is > reasonable. > > > > The IANA section means that when the IESG approves the document, we will > > modify the document to select a permanent 0-63 codepoint before or during > > AUTH48. There will be no need for a bis document. > > [Qin]:Thank for clarification, I am wondering why not request both > codepoints at the same time, > > I feel the current text in section 10 for codepoint request is temporary > text and subject to change, would it be great to make these text normative, > > Which doesn’t need to make another request using one more document. > This will all happen before publication. This pattern allows us to only reserve low codepoints when we know the protocol will no longer change. > Nits: > > 1. Section 2 said: " For instance, if the client initiates a > connection with version A and the server starts incompatible version > negotiation and the client then initiates a new connection with .... " > [Qin]Can > the client starts incompatible version negotiation? if not, I think we > should > call this out, e.g., using RFC2119 language. > > > > Good catch, this was an implicit assumption. I made it explicit with 2119 > text: > > https://github.com/quicwg/version-negotiation/pull/128 > > > > 2. Section 2, last paragraph [Qin] > This paragraph is a little bit vague to me, how do we define not fully > support? > e.g., the server can interpret version A, B,C, but the server only fully > implements version A,B, regarding version C, the server can read this > version, > but can not use this version, in other words, it is partially implemented, > is > my understanding correct? > > > > Your understanding is correct. Do you have suggestions for better wording? > > [Qin]:I suggest to consider the relation between fully supported and > negotiated versioned, offered version, accepted version. > > If my understanding is correct, parsing the first flight of a given > version means you can negotiate a new version between the client > > And the server ,if the negotiated version is not accepted version or not > agreed by both the client and server,we can not use the negotiated > > Version to establish the connection, not less than communicate the data > packet using this version. > > Hope this helps you find better wording. > I'm sorry, but the WG has considered the relationship between all these concepts and they need to all exist to avoid some tricky race conditions. 3.Section 2.1 the new term "offered version" [Qin] > Can you add one definition of offered versions in section 1.2, terminology > section? To be honest, I still not clear how offered version is different > from > negotiated version? Also I suggest to add definitions of accepted version, > deployed version as well in section 1.2? Too many terminologies, hard to > track > them in the first place. > > > > Those terms are introduced with a reference to Section 5 that very clearly > > defines them. Duplicating those definitions in Section 1.2 would make the > > document less clear in my opinion. > > [Qin] Okay, my logic is you should make different xx version definition in > the first place to help reader who has no quic background better understand > > The mechanism proposed in this draft. > > I will leave this up to you, no strong opinion on this. > Thanks. 4. Section 6 said: " it is possible for some > application layer protocols to not be able to run over some of the offered > compatible versions. " [Qin]I believe compatible versions is not > pertaining to > any application layer protocol, if yes, > s/compatible versions/compatible QUIC versions > > > > Compatible versions are defined as referring to QUIC versions. My apologies > > but I think the existing text is clearer. > > [Qin]Good. > Thanks . > 5.Section 7.1 said: > "For example, that could be accomplished by having the server send a Retry > packet in the original > version first thereby validating the client's IP address before" > [Qin] Is Version first Version 1? If the answer is yes, please be > consistent > and keep using > either of them instead of inter-exchange to use them. > s/version first/version 1 > > > > You're misunderstanding this sentence, I've moved the word first to avoid > the confusion: > > > https://github.com/quicwg/version-negotiation/commit/e1ca5b749e2ea2347db7d8353bc2f9cc770ae354 > > > > [Qin]: Thanks. I am clear for this comment. > Thanks.
- [Last-Call] Opsdir last call review of draft-ietf… Qin Wu via Datatracker
- Re: [Last-Call] Opsdir last call review of draft-… David Schinazi
- Re: [Last-Call] Opsdir last call review of draft-… Qin Wu
- Re: [Last-Call] Opsdir last call review of draft-… David Schinazi