Re: [quicwg/base-drafts] Import HTTP/2 Security Considerations (#3531)
ianswett <notifications@github.com> Sat, 21 March 2020 19:40 UTC
Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D8A2A3A0901 for <quic-issues@ietfa.amsl.com>; Sat, 21 Mar 2020 12:40:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.1
X-Spam-Level:
X-Spam-Status: No, score=-3.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2HzYFzoxxNUf for <quic-issues@ietfa.amsl.com>; Sat, 21 Mar 2020 12:40:05 -0700 (PDT)
Received: from out-19.smtp.github.com (out-19.smtp.github.com [192.30.252.202]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8DD643A0900 for <quic-issues@ietf.org>; Sat, 21 Mar 2020 12:40:00 -0700 (PDT)
Date: Sat, 21 Mar 2020 12:39:59 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1584819599; bh=E+dtWMlt56R5+CTJl8bOgmuGI28hlfB995OiVQMjKw4=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=Vsc8OYqrflRsVsH3mBaDS5OSz9tiUwyNGCJqQrL/z6ktupPu7UneGmPWag3BlmVOv rVawAJdxgWvLVs0PKQ5psSc2xcQ1Tqmjzuz2XnOIQgFbSXH4+9rAfeC6f8inzJoJEX jiVxw2ulXcLTsiMLCBBzn4kf/KieZc7p/96OcSiA=
From: ianswett <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK73PTZMNA3DTLYOHQF4QJHI7EVBNHHCFTHBIQ@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/3531/review/378944999@github.com>
In-Reply-To: <quicwg/base-drafts/pull/3531@github.com>
References: <quicwg/base-drafts/pull/3531@github.com>
Subject: Re: [quicwg/base-drafts] Import HTTP/2 Security Considerations (#3531)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5e766d8ff45c_53fa3fcaf28cd96027815e"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: ianswett
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/OqHwoJkR_HqkE3xhvxx_bhMCOq8>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 21 Mar 2020 19:40:11 -0000
ianswett commented on this pull request. > +the origin server in the Cache-Control header field. However, this can cause +issues if a single server hosts more than one tenant. For example, a server +might offer multiple users each a small portion of its URI space. + +Where multiple tenants share space on the same server, that server MUST ensure +that tenants are not able to push representations of resources that they do not +have authority over. Failure to enforce this would allow a tenant to provide a +representation that would be served out of cache, overriding the actual +representation that the authoritative tenant provides. + +Pushed responses for which an origin server is not authoritative (see +{{connection-reuse}}) MUST NOT be used or cached. + +## Denial-of-Service Considerations + +An HTTP/3 connection can demand a greater commitment of resources to operate I'm not sure I know why this would be true, particularly for HTTP/2 vs HTTP/3? > +might be done by setting multiple undefined SETTINGS parameters, unknown frame +types, or unknown stream types. Note, however, that some uses are entirely +legitimate, such as optional-to-understand extensions and padding to increase +resistance to traffic analysis. + +Header compression also offers some opportunities to waste processing resources; +see Section 7 of [QPACK] for more details on potential abuses. + +All these features -- i.e., server push, unknown protocol elements, field +compression -- have legitimate uses. These features become a burden only when +they are used unnecessarily or to excess. + +An endpoint that doesn't monitor this behavior exposes itself to a risk of +denial-of-service attack. Implementations SHOULD track the use of these +features and set limits on their use. An endpoint MAY treat activity that is +suspicious as a connection error ({{errors}}) of type H3_EXCESSIVE_LOAD. It might be worth calling out that this could close valid connections and cause requests to fail? > +All these features -- i.e., server push, unknown protocol elements, field +compression -- have legitimate uses. These features become a burden only when +they are used unnecessarily or to excess. + +An endpoint that doesn't monitor this behavior exposes itself to a risk of +denial-of-service attack. Implementations SHOULD track the use of these +features and set limits on their use. An endpoint MAY treat activity that is +suspicious as a connection error ({{errors}}) of type H3_EXCESSIVE_LOAD. + +### Limits on Field Section Size + +A large field section ({{request-response}}) can cause an implementation to +commit a large amount of state. Header fields that are critical for routing can +appear toward the end of a header field section, which prevents streaming of the +header field section to its ultimate destination. This ordering and other +reasons, such as ensuring cache correctness, mean that an endpoint might need to In my experience, this is quite likely a requirement, not just a might. So I'd be inclined to make this stronger(ie: "likely needs to..." -- 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/pull/3531#pullrequestreview-378944999
- [quicwg/base-drafts] Import HTTP/2 Security Consi… Mike Bishop
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Mike Bishop
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Martin Thomson
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Mike Bishop
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Mike Bishop
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Mike Bishop
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Mike Bishop
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Lucas Pardue
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Lucas Pardue
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Mike Bishop
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Mike Bishop
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Lucas Pardue
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… ianswett
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Mike Bishop
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Mike Bishop
- Re: [quicwg/base-drafts] Import HTTP/2 Security C… Mike Bishop