Subject: Re: [quicwg/base-drafts] Discarding an invalid Initial is allowed (63f88b2)

From: Christian Huitema <[email-masked]>
Date: Mon, 16 Nov 2020 17:25:47 -0800

@martinthomson The confusion happened because of the strong language in section 17.2:

_Reserved Bits:
    Two bits (those with a mask of 0x0c) of byte 0 are reserved across multiple packet types. These bits are protected using header protection; see Section 5.4 of [QUIC-TLS]. The value included prior to protection MUST be set to 0. An endpoint MUST treat receipt of a packet that has a non-zero value for these bits after removing both packet and header protection as a connection error of type PROTOCOL_VIOLATION. Discarding such a packet after only removing header protection can expose the endpoint to attacks; see Section 9.5 of [QUIC-TLS]._

When @kazu-yamamoto built his test suite, he logically set up a test to verify adherence to this MUST. I think this MUST should be changed to "MUST (unless you know better)", i.e. SHOULD. Maybe as in:

_Reserved Bits:
    Two bits (those with a mask of 0x0c) of byte 0 are reserved across multiple packet types. These bits are protected using header protection; see Section 5.4 of [QUIC-TLS]. The value included prior to protection MUST be set to 0. Except for INITIAL packets, an endpoint MUST treat receipt of a packet that has a non-zero value for these bits after removing both packet and header protection as a connection error of type PROTOCOL_VIOLATION; see {{packet-protected}} for the exception for INITIAL packets. Discarding such a packet after only removing header protection can expose the endpoint to attacks; see Section 9.5 of [QUIC-TLS]._

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/commit/63f88b2b6e50acb3dd083d1ca55baec88021895e#commitcomment-44246721