- From: Erik Nygren <erik@nygren.org>
- Date: Fri, 10 Jul 2015 00:41:04 -0400
- To: Martin Thomson <martin.thomson@gmail.com>
- Cc: Stefan Eissing <stefan.eissing@greenbytes.de>, Ilari Liusvaara <ilari.liusvaara@elisanet.fi>, HTTP Working Group <ietf-http-wg@w3.org>
- Message-ID: <CAKC-DJgkhebYsDSyj-ZWcTH0j6jW-iwMiPJyxJX1UnkiHEPq6g@mail.gmail.com>
Out of curiosity, how have current demuxer implementations been handling and passing the :scheme along? It may be that many implementations are ending up in the same situation as http/1.1 here... For example, how many: 1) Pass :scheme along in a proxyline or similar (eg, OOB channel), with downstream app handling it properly 2) Pass :scheme along as a "Scheme" request header (but in a way that is spoofable and indistinguishable from a client request header) 3) Pass :scheme along as a ":scheme" request header (or some other invalid HTTP/1.1 header) 4) Fail if :scheme is not "https" 5) Pass :scheme along in a proxyline or similar (eg, OOB channel), with downstream app ignoring it 6) Drop :scheme entirely Unfortunately, of these only #1 is actually safe. As sad as it makes me (due to making interception easier), I keep coming back to wondering if a separate alpn token would be safer for h/2 oppsec. Erik On Thu, Jun 18, 2015 at 1:06 PM, Martin Thomson <martin.thomson@gmail.com> wrote: > On 18 June 2015 at 01:26, Stefan Eissing <stefan.eissing@greenbytes.de> > wrote: > > I think, as a consequence, I need to disable the Alt-Svc support for > http: in mod_h2, since scheme information is not available to others living > inside Apache httpd and the described http/1.1 exploit will work exactly > the same with h2 involved. > > It depends on how Apache reports things as being "https" or not. If > you can avoid generating those signals or suppress them, then it > should be OK. > > We can certainly improve the text. Here's what I have: > > Some HTTP/1.1 implementations use ambient signals to determine if a > request is for an `https` > resource. For example, implementations might look for TLS on the > stack or a port number of 443. > An implementation that supports opportunistically secured requests > SHOULD suppress these signals if > there is any potential for confusion. > >
Received on Friday, 10 July 2015 04:41:32 UTC