I should add: I do think this general line of consolidating all the client
auth modes is a good idea, assuming we can work out the details.

-Ekr


On Wed, Sep 16, 2015 at 11:18 AM, Eric Rescorla <e...@rtfm.com> wrote:

> I think the potential issue here is needing a way for the server to tell
> the
> client "don't bother sending me data until you've authenticated" (though,
> as MT says, you could argue that the client's signature retroactively
> authenticates, which does seem like the simplest way to think about
> things).
>
> One might imagine dealing with that by a simple signal in a ServerHello
> extension that said "authentication will be required, sit tight..."
>
> -Ekr
>
>
> On Wed, Sep 16, 2015 at 11:11 AM, Andrei Popov <andrei.po...@microsoft.com
> > wrote:
>
>> Martin's point makes sense to me: applications that need to do
>> authentication upfront can still do that immediately after the handshake.
>>
>> Cheers,
>>
>> Andrei
>>
>> -----Original Message-----
>> From: Martin Thomson [mailto:martin.thom...@gmail.com]
>> Sent: Wednesday, September 16, 2015 10:48 AM
>> To: Ilari Liusvaara <ilari.liusva...@elisanet.fi>
>> Cc: Andrei Popov <andrei.po...@microsoft.com>; tls@ietf.org
>> Subject: Re: [TLS] Review of PR #209
>>
>> On 16 September 2015 at 08:30, Ilari Liusvaara <
>> ilari.liusva...@elisanet.fi> wrote:
>> > Problem with pulling client auth out of the handshake is that it
>> > complicates applications that can't change identities involved with
>> > active connection.
>>
>> Why would that be unsupported here?  The server can still send
>> CertificateRequest immediately after its Finished.  That looks exactly like
>> it does today, only the order has changed.
>>
>> > As then the application needs to ensure that the authentication occurs
>> > between TLS handshake and actually starting up the protocol.
>>
>> I'm not sure that is necessarily a problem.  If the claim is that the
>> authentication attests to everything prior to its appearance, then you have
>> no problem.  I think that claim is reasonable, but I'm happy to discuss it.
>>
>> >> 2. The client can send Certificate and CertificateVerify at any time
>> >> application data is permitted, regardless of whether the server had
>> >> previously sent CertificateRequest.
>> >
>> > CertificateRequest contains the permitted signature algorithms for the
>> > PoP signature, which TLS library needs to verify before dumping the
>> > certificate chain on application (which can then figure out things
>> > like trust anchors).
>> >
>> > Without CertificateRequest, one has little idea what algorithms are
>> > acceptable there.
>>
>> Arguably, signature_algorithms covers that adequately.  Though I'll grant
>> that certificate chain validation often happens in a separate component to
>> the TLS stuff.
>>
>> > Basically, one must clear the pipeline before changing identities, and
>> > with protocols like HTTP/2, this is extremely expensive (seemingly
>> > even more expensive than establishing a new connecion).
>>
>> There's been some confusion about this with HTTP/2.  I think that if you
>> adopt the position that authentication applies to the entire session - even
>> retroactively - then the only remaining concern is the correlation one.  If
>> you have three tabs to the site open where all of them are making requests
>> and you see a certificate request, which one do you pop the dialog on?
>>
>> > Also, it should sign the certificate, to avoid possible weirdness due
>> > to signatures not properly binding the key (some schemes do, most
>> > don't).
>>
>> I agree with this.
>> _______________________________________________
>> TLS mailing list
>> TLS@ietf.org
>> https://www.ietf.org/mailman/listinfo/tls
>>
>
>
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to