Re: [TLS] some thoughts on dnssec-chain-extension, pinning, and broader semantics

2018-11-06 Thread Benjamin Kaduk
On Mon, Nov 05, 2018 at 09:00:29AM -0500, Viktor Dukhovni wrote:
> > On Nov 5, 2018, at 8:01 AM, Benjamin Kaduk  wrote:
> > 
> > Once we start talking about pinning of any sort, we move from this
> > extension just being "transport some DNS records" into conveying some
> > sort of additional semantics.
> 
> Transporting some bits *always* carries additional semantics, otherwise

Of course!  But if we don't precisely specify those semantics, we expect
to get DISCUSS positions at IESG evaluation (as "not interoperably
implementable").

> why carry the bits.  For example, already in -07 there is clear text
> specifying that the transported records can be cached for their DNS TTL,
> and that once delivered DANE records should not be ignored on failure.
[...]
> That rather looks like semantics to me, much more than transport some bits.

Is it new semantics for this TLS extension, or just the semantics of "you
have a DANE record; this is what you do with it"?

> > It seems that we have not really had a structured discussion about what
> > semantics and information flows we might or might not want to convey in
> > this extension (in one or both directions!), and I'm reluctant to consider
> > adding such semantics without such a discussion.
> 
> I really don't think that at this juncture it is productive to wipe the
> slate clean and consider all possible proposals, even ones that nobody
> has put forward as yet.  Why would we want to do that.  There is clearly

When we do work at the IETF, proposals are not presented as a "take it
or leave it" option -- usually, they are starting points for further
analysis and discussion: "is this optimal?", "is it better if we tweak
it in this way?", etc.  I am presenting a framework in which to try to
answer these questions, starting from the proposal on the table.

In other words, I am pointing out that there is a process step that
needs to happen before this draft can be published.  This need not start
from a "clean slate", but we do need to be confident that we understand
what we are publishing.

> just one primary contentious issue to resolve, and I rather think your
> train of thought is a distraction from the issue at hand.

The IETF process requires reaching a consensus understanding of the
technical facts of an issue.  My train of thought is an effort to seek
that understanding in the area of downgrade countermeasures, since in my
judgement it has not been achieved by the previous WG discussions.  If
we have no WG consensus understanding of pinning, we cannot publish
pinning.  That could mean not publishing at all, or publishing something
that lacks pinning.  The latter would of course not preclude other work on
pinning by interested parties.

> > If we accept the premise that the intention of DANE as relevant in this
> > space is to allow the server to convey to the client the server's
> > preferences for how the client should authenticate the server, we may also
> > want to consider the case where a server operator wants to eventually get
> > to a DANE-only state where it can ignore the web PKI.
> 
> Nobody is looking for this.  There's no point.  WebPKI certificates are
> free (and worth every penny).  DANE adoption is far too light to even
> begin to contemplate abandoning WebPKI, and we're probably two decades
> away from being able to do that, by which point the quantum computer
> apocalypse may have made many of the current designs moot.

That's good input; thanks.

> > (There may not be
> > many or any servers that actually end up wanting to do this, but it's not
> > unreasonable to consider the possibility.)
> 
> It seems unreasonable to me, because no such signalling was for example
> proposed for raw public keys or various PSK methods, etc.  And of course
> the server operator can log the use of the extension and draw conclusions
> about client support based on that, and the overall technology landscape.
> There's no need to include this in the discussion.

The chairs should feel free to shut this down if needed.
But I'll note that the server's logging is not going to get any signal
from clients that can get DANE records via their normal resolver, with
the current proposal.

> > Similarly, the server may want to indicate things like:
> > 
> > (a) the server wants to be authenticated via DANE (yes, this is just the
> >contents of the DNS)
> 
> And any client with a decent network environment can just query the
> DNS directly, and never use the extension and have the record hot
> in the local cache.  So there's no need for anything too complicated
> here.  We just need to provide as much of the downgrade-resistance
> that DNSSEC gives automatically, also to clients that for some time

I think I'm confused about what you mean by "the downgrade-resistance
that DNSSEC gives automatically".

> will be able to do DNSSEC.
> 
> > I deliberately am not trying to come to a conclusion in this message, as I
> > am not confident that I have even come up with all the p

Re: [TLS] some thoughts on dnssec-chain-extension, pinning, and broader semantics

2018-11-06 Thread Tim Wicinski
My question would be "what will the HTTP community do if they find this
whole process unwieldy and long"?
Answer  They will come up with a solution that does nothing with DANE.

is that an excuse to do something less than perfect for the better good, or
do we live in the world of smug satisfaction of being perfect?

Sorry, from reading this discussion that's my simple minded view.

Tim


On Tue, Nov 6, 2018 at 11:07 PM Benjamin Kaduk  wrote:

> On Mon, Nov 05, 2018 at 09:00:29AM -0500, Viktor Dukhovni wrote:
> > > On Nov 5, 2018, at 8:01 AM, Benjamin Kaduk  wrote:
> > >
> > > Once we start talking about pinning of any sort, we move from this
> > > extension just being "transport some DNS records" into conveying some
> > > sort of additional semantics.
> >
> > Transporting some bits *always* carries additional semantics, otherwise
>
> Of course!  But if we don't precisely specify those semantics, we expect
> to get DISCUSS positions at IESG evaluation (as "not interoperably
> implementable").
>
> > why carry the bits.  For example, already in -07 there is clear text
> > specifying that the transported records can be cached for their DNS TTL,
> > and that once delivered DANE records should not be ignored on failure.
> [...]
> > That rather looks like semantics to me, much more than transport some
> bits.
>
> Is it new semantics for this TLS extension, or just the semantics of "you
> have a DANE record; this is what you do with it"?
>
> > > It seems that we have not really had a structured discussion about what
> > > semantics and information flows we might or might not want to convey in
> > > this extension (in one or both directions!), and I'm reluctant to
> consider
> > > adding such semantics without such a discussion.
> >
> > I really don't think that at this juncture it is productive to wipe the
> > slate clean and consider all possible proposals, even ones that nobody
> > has put forward as yet.  Why would we want to do that.  There is clearly
>
> When we do work at the IETF, proposals are not presented as a "take it
> or leave it" option -- usually, they are starting points for further
> analysis and discussion: "is this optimal?", "is it better if we tweak
> it in this way?", etc.  I am presenting a framework in which to try to
> answer these questions, starting from the proposal on the table.
>
> In other words, I am pointing out that there is a process step that
> needs to happen before this draft can be published.  This need not start
> from a "clean slate", but we do need to be confident that we understand
> what we are publishing.
>
> > just one primary contentious issue to resolve, and I rather think your
> > train of thought is a distraction from the issue at hand.
>
> The IETF process requires reaching a consensus understanding of the
> technical facts of an issue.  My train of thought is an effort to seek
> that understanding in the area of downgrade countermeasures, since in my
> judgement it has not been achieved by the previous WG discussions.  If
> we have no WG consensus understanding of pinning, we cannot publish
> pinning.  That could mean not publishing at all, or publishing something
> that lacks pinning.  The latter would of course not preclude other work on
> pinning by interested parties.
>
> > > If we accept the premise that the intention of DANE as relevant in this
> > > space is to allow the server to convey to the client the server's
> > > preferences for how the client should authenticate the server, we may
> also
> > > want to consider the case where a server operator wants to eventually
> get
> > > to a DANE-only state where it can ignore the web PKI.
> >
> > Nobody is looking for this.  There's no point.  WebPKI certificates are
> > free (and worth every penny).  DANE adoption is far too light to even
> > begin to contemplate abandoning WebPKI, and we're probably two decades
> > away from being able to do that, by which point the quantum computer
> > apocalypse may have made many of the current designs moot.
>
> That's good input; thanks.
>
> > > (There may not be
> > > many or any servers that actually end up wanting to do this, but it's
> not
> > > unreasonable to consider the possibility.)
> >
> > It seems unreasonable to me, because no such signalling was for example
> > proposed for raw public keys or various PSK methods, etc.  And of course
> > the server operator can log the use of the extension and draw conclusions
> > about client support based on that, and the overall technology landscape.
> > There's no need to include this in the discussion.
>
> The chairs should feel free to shut this down if needed.
> But I'll note that the server's logging is not going to get any signal
> from clients that can get DANE records via their normal resolver, with
> the current proposal.
>
> > > Similarly, the server may want to indicate things like:
> > >
> > > (a) the server wants to be authenticated via DANE (yes, this is just
> the
> > >contents of the DNS)
> >
> > And an

Re: [TLS] some thoughts on dnssec-chain-extension, pinning, and broader semantics

2018-11-06 Thread Viktor Dukhovni
On Tue, Nov 06, 2018 at 10:05:14AM -0600, Benjamin Kaduk wrote:

> Of course!  But if we don't precisely specify those semantics, we expect
> to get DISCUSS positions at IESG evaluation (as "not interoperably
> implementable").

Yes, that's why the draft once updated will need to explain the
semantics, rationale, limitations, risks, ... of any approach it
ultimately takes.

> > why carry the bits.  For example, already in -07 there is clear text
> > specifying that the transported records can be cached for their DNS TTL,
> > and that once delivered DANE records should not be ignored on failure.
> [...]
> > That rather looks like semantics to me, much more than transport some bits.
> 
> Is it new semantics for this TLS extension, or just the semantics of "you
> have a DANE record; this is what you do with it"?

Well, in -07 there is also a TOFU unilateral pinning proposal, added
in a hasty (and little noticed at the end of the original process)
attempt to close the gap between promised and viable scope.  Otherwise,
yes, it mostly tries to parallel what happens when TLSA records are
obtained directly from DNS.

> > I really don't think that at this juncture it is productive to wipe the
> > slate clean and consider all possible proposals, even ones that nobody
> > has put forward as yet.  Why would we want to do that.  There is clearly
> 
> When we do work at the IETF, proposals are not presented as a "take it
> or leave it" option -- usually, they are starting points for further
> analysis and discussion: "is this optimal?", "is it better if we tweak
> it in this way?", etc.  I am presenting a framework in which to try to
> answer these questions, starting from the proposal on the table.

Please pardon my frustration with the recent deadlock.  If my
objection is excessive, I apologise.  That said, I do hope that the
discussion will have some focus.

* We've made a substantive proposal, explaining both the need for
  downgrade protection to make the extension more widely applicable,
  and that risks do not entail anything like an HPKP footgun.
* The chairs have summarized the issues, and asked for any substantive
  objections to the summary... none were made.
* I do think it is time to actually settle two basic questions:

* Expand the scope to cover existing applications, or
  rewrite the introduction to say this is a DPRIVE-only
  extension to TLS, and explain why the scope should not
  be any wider.

* Get past instinctive reactions to pinning the extension
  (which bears little resemblance to HPKP), and if so move on
  to figuring out the design parameters.  Maximum duration,
  any gradual scaling to give server operators time to adopt,
  or no scaling because the risk of hostile pinning is minor
  and not worth the complexity, ...

Yes, of course other topics can also be discussed, but I hope not
to the exclusion of moving past the present roadblocks.  This is
not the end of the process, more of a new beginning, which once
progress resumes will leave room for additional considerations.

> > And any client with a decent network environment can just query the
> > DNS directly, and never use the extension and have the record hot
> > in the local cache.  So there's no need for anything too complicated
> > here.  We just need to provide as much of the downgrade-resistance
> > that DNSSEC gives automatically, also to clients that for some time
> 
> I think I'm confused about what you mean by "the downgrade-resistance
> that DNSSEC gives automatically".

When a client using this extension asks the server for a DNSSEC
chain, absent any prior commitment by the server, it cannot expect
the answer, and not getting one will be the default "normal", not
a failure

When a validating DNS resolver asks a DNS question it always expects
a DNS answer, failing to get an answer, or getting an invalid answer
is a failure.  Sadly in some captive portals and behind some crippled
home CPE equipment, failure is more common than we'd like, but still
it is clear that getting no answer, or an invalid answer is a
failure.

> > I think at this point hypothetical semantics is not a helpful direction.
> 
> I'm sorry you feel that way.  We've seen a few participants raise a
> specific pinning proposal but they seem to have squelched discussion of
> any other pinning options.

There have been no substantive alternative pinning proposals.  All
I've seen is suggesting for a "testing" mode, which is not viable
here, as already explained, and out-of-band reporting is also not
a good option, an in-band alert would be far simpler and better.

Once again sorry if you feel shut down, not my intention, just
trying to get some focus on specific refinements or objections, so
we can move forward (or not) and if so then entertain more suggested
refinements.

-- 
Viktor.

___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] some thoughts on dnssec-chain-extension, pinning, and broader semantics

2018-11-06 Thread Nico Williams
We've had a couple of conference calls to discuss the I-D.

One call ended up causing the consensus on the I-D to collapse.

The second call ended too soon, but it was not unproductive.  Indeed, I
think at that call and in the subsequent off-list threads we identified
the concerns with pinning:

 - footgun concerns
 - hostile abuse concerns

Now, I believe we have demonstrated that there is no footgun: whenever
you can set the pin, you can also clear the pin.  At worst one might
first upgrade a server to gain support for the extension, set a pin,
then downgrade for some reason and thus footgun -- but the fix is to
upgrade again, or not set the pin immediately upon upgrade.  We also
have a mitigation for upgrade-set-pin-downgrade case (exponential
scaling of the pin timer with age of the RFC).

The second concern is, IMO, a non-concern, but granting for argument's
sake that it might be anyways, our answer to it is that sufficiently far
into the future the victim's server will support the extension, thus it
will be able to clear a hostile pin, therefore the exponential pin timer
scaling idea will give servers time to gain support for the extension
before anyone could ever make hostile use of the pin.

I believe we have put away those two concerns.  If we have not, please
say so and explain such that we might (or that we might see the errors
of our ways).

Are there any other reasons not to accept the proposed pinning scheme?

If no one can state any such reasons, why shouldn't we just accept the
proposal?

Nico
-- 

___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] some thoughts on dnssec-chain-extension, pinning, and broader semantics

2018-11-06 Thread Paul Wouters

On Tue, 6 Nov 2018, Benjamin Kaduk wrote:


I think I'm confused about what you mean by "the downgrade-resistance
that DNSSEC gives automatically".


You cannot filter DNSSEC without the target being aware of being
filtered (where filtering == downgrading)

Paul

___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] some thoughts on dnssec-chain-extension, pinning, and broader semantics

2018-11-06 Thread Paul Wouters

On Wed, 7 Nov 2018, Tim Wicinski wrote:


My question would be "what will the HTTP community do if they find this whole 
process unwieldy and long"? Answer  They will come up with a
solution that does nothing with DANE. 


They dont need to do anything to not have DANE. They already not have it.


is that an excuse to do something less than perfect for the better good, or 
do we live in the world of smug satisfaction of being perfect? 


100% downgradable security is not security. It is not about being smug
or perfect.

Paul

___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] Certificate keyUsage enforcement question (new in RFC8446 Appendix E.8)

2018-11-06 Thread Viktor Dukhovni
[ Quoted text slightly reordered to put the RSA issue first, as that's
  the main thing I'm trying to get clarity on, and enabling keyUsage
  enforcement is causing some interoperability issues now... ]

> On Nov 5, 2018, at 11:11 PM, Geoffrey Keating  wrote:
> 
>> TL;DR:  Should TLS client abort DHE-RSA handshakes with a peer
>> certificate that *only* lists:
>> 
>>X509v3 Key Usage: 
>>Key Encipherment, Data Encipherment
> 
> Yes, because in DHE-RSA, the RSA key is used for signing, and this is
> an encryption-only key.
> 

> As far as I know there's no similar attack on RSA, but I think this is
> not a well-examined area.

Since the vast majority of certificates in the wild are RSA, and
interoperability is a concern, I'd really like to better understand
what risk if any posed if one allows a an *RSA* key with a keyUsage
of "keyEncipherment" (seen on some live servers that then do DHE-RSA)
to be used for "DigitalSignature"?  I am only aware of risks in the
converse direction.  How unreasonable would it be to be more forgiving
and allow *RSA* "DigitalSignature" when the keyUsage indicates otherwise?

> It's much more important in the DHE-ECDSA case, because using an
> encryption-only EC key for signing can lead to key compromise (IIRC).

Does anyone have pointers to references for that?  FWIW, I've never seen an
encryption-only (ECIES?) ECDSA key, I guess could be intended for CMS...
In TLSA there's no ECDS keyEncipherment, only ECDHE and fixed ECDH (obsolete).
The first goes with a keyUsage of DigitalSignature, the second with 
keyAgreement.

Knowing how fragile ECDSA tends to be to key recovery on nonce re-use
or similar issues, I have no reservations enforcing keyUsage for ECDSA.

-- 
Viktor.

___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


[TLS] The TLS WG has placed draft-wood-tls-ticketrequests in state "Candidate for WG Adoption"

2018-11-06 Thread IETF Secretariat


The TLS WG has placed draft-wood-tls-ticketrequests in state
Candidate for WG Adoption (entered by Sean Turner)

The document is available at
https://datatracker.ietf.org/doc/draft-wood-tls-ticketrequests/

___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


[TLS] WGLC for draft-ietf-tls-exported-authenticator

2018-11-06 Thread Christopher Wood
This is the working group last call for the "Exported Authenticators
in TLS" draft available at
https://datatracker.ietf.org/doc/draft-ietf-tls-exported-authenticator/.
Please review the document and send your comments to the list by 2359
UTC on 30 November 2018.

Thanks,
Chris, Joe, and Sean

___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


[TLS] WGLC for draft-ietf-tls-dtls13

2018-11-06 Thread Sean Turner
This is the working group last call for the "The Datagram Transport
Layer Security (DTLS) Protocol Version 1.3" draft available at
https://datatracker.ietf.org/doc/draft-ietf-tls-dtls13/.  Please
review the document and send your comments to the list by 2359 UTC on
30 November 2018.

Thanks,
Chris, Joe, and Sean

___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


[TLS] WGLC for draft-ietf-tls-dtls-connection-id

2018-11-06 Thread Joseph Salowey
This is the working group last call for the "Connection Identifiers for
DTLS 1.2" draft available at
https://datatracker.ietf.org/doc/draft-ietf-tls-dtls-connection-id/. Please
review the document and send your comments to the list by 2359 UTC on 30
November 2018.

Thanks,
Chris, Joe, and Sean
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


[TLS] WG adoption call: draft-wood-tls-ticketrequests

2018-11-06 Thread Sean Turner
At TLS@IETF103, there was consensus in the room to adopt 
draft-wood-tls-ticketrequests.  This message is to confirm that consensus.  If 
you do not support adoption of draft-wood-tls-ticketrequests as WG item please 
say so by 2359UTC on 30 November 2018 (and say why).

Thanks,
Joe and Sean
___
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls


Re: [TLS] Draft minutes for TLS, Monday session

2018-11-06 Thread Christopher Wood
Thanks, Rich!
On Mon, Nov 5, 2018 at 4:16 PM Salz, Rich  wrote:
>
> Draft minutes attached; please post corrections to the list.
>
>
>
>
>
> ___
> 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