Re: [httpwg/http-extensions] Stream-linking frames can reference Stream Zero (#586)

HTTP issue updates <http-issues@ietf.org> Thu, 24 May 2018 23:37 UTC

Delivered-To: http-issues@ietfa.amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.009
X-Spam-Level:
X-Spam-Status: No, score=-8.009 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.com
Date: Thu, 24 May 2018 16:37:04 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1527205024; bh=Gi0V4+fel7gaLOSsjTnStyxfT8yFbxZSAWT+LoCVsDE=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=XDlr8ApkJb5vsiweXePz6qbHd1RjLp5Ggsb2YSUlSd29m7bMP8GHjBATPODBP6F8O 7wax4dBnj8Pv7+w/9x2N9rQGI4I3vRzqlCepwg+dOVVoYqrqRltTt46iGGL/gVdexK e2koGxOEV20B2nK57jaCFDD0oVoc7SPD6CTGrNjs=
To: httpwg/http-extensions <http-extensions@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
In-Reply-To: <httpwg/http-extensions/pull/586@github.com>
References: <httpwg/http-extensions/pull/586@github.com>
Subject: Re: [httpwg/http-extensions] Stream-linking frames can reference Stream Zero (#586)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b074ca0cc5ab_b053fe6799d6f80114297"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
Archived-At: <https://mailarchive.ietf.org/arch/msg/http-issues/RMG61sqgmJu9a7Q1g6c4h9gJO3w>
Message-ID: <mailman.911.1527205030.2697.http-issues@ietf.org>
From: HTTP issue updates <http-issues@ietf.org>
Reply-To: http-issues@ietf.org
X-BeenThere: http-issues@ietf.org
X-Mailman-Version: 2.1.22
List-Id: HTTP issue updates <http-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/http-issues>, <mailto:http-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/http-issues/>
List-Post: <mailto:http-issues@ietf.org>
List-Help: <mailto:http-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/http-issues>, <mailto:http-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 May 2018 23:37:09 -0000

martinthomson requested changes on this pull request.

This makes me convinced that we probably want to hold exported authenticators for a little while longer.  See the big comment.

>  
-If the server does not have the desired certificate, it MUST \[see issue #564].
-In this case, or if the server has not advertised support for HTTP-layer
-certificates, the client MUST NOT send any requests for resources in that origin
-on the current connection.
+If the server does not have the desired certificate, it MUST send an empty
+`USE_CERTIFICATE` frame for stream zero.  In this case, or if the server has not

When you say empty, I think that you mean that the server sends an empty CERTIFICATE frame and then references that certificate when it wants to reject a CERTIFICATE_NEEDED request.

That is:

```
Client Sends:
CERTIFICATE_REQUEST (id=N) -->
CERTIFICATE_NEEDED (S=0, R=M) -->
...
Server can't answer, so:
<-- CERTIFICATE (Cert-ID=Q, <empty>)
<-- USE_CERTIFICATE (S=0, R=M)
```

The problem here is that the empty CERTIFICATE frame isn't bound in any way to the CERTIFICATE_REQUEST, unless your definition of "empty" isn't that the authenticator is completely absent, but that it includes a valid authenticator, but no certificate in the TLS Certificate message.  Then the `certificate_request_context` can be used to correlate CERTIFICATE with CERTIFICATE_REQUEST in the usual fashion.  That's how TLS does it - it sends Certificate without the certificate and omits the CertificateVerify message entirely if it doesn't want to authenticate.  (I just realized that I used CERTIFICATE, Certificate and certificate in the same paragraph to mean three different things, which is not at all confusing.)

I just read exported authenticators again and I don't see that use case being addressed at all.  @grittygrease should be aware of that given that TLSEA is in WGLC.  I think that TLSEA needs to address that case one way or other.  If the intent is to have the using application manage rejection, then it needs to be clear where the responsibility lies.  However, I think that having authenticated rejection is superior and that should be expressly included in the draft with a description of how that is done.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/httpwg/http-extensions/pull/586#pullrequestreview-123206820