Given what we've learned about pinning (it is being removed from
browsers), this seems like a bad plan to me.

Your cost benefit analysis seems about right though.

On Thu, Apr 5, 2018 at 9:27 AM, Viktor Dukhovni <ietf-d...@dukhovni.org> wrote:
>
>
>> On Apr 4, 2018, at 1:50 PM, Joseph Salowey <j...@salowey.net> wrote:
>>
>> - Recommendation of adding denial of existence proofs in the chain provided 
>> by the extension
>> - Adding signaling to require the use of this extension for a period of time 
>> (Pinning with TTL)
>
> These are indeed the immediate proposed fixes, and ultimately the consensus 
> call will be about
> whether the fixes should be formalized and integrated or the document 
> advanced as-is, but before
> we consider them in a vacuum, I'd like to explain in some detail *why* they 
> are needed.  This
> requires firstly an examination of why the extension is needed in the first 
> place, and what
> use-cases it should address.  This will be detailed below, but first:
>
>> This is a consensus call on how to progress this document.  Please answer 
>> the following questions:
>>
>> 1) Do you support publication of the document as is, leaving these two 
>> issues to potentially be addressed in follow-up work?
>>
>> If the answer to 1) is no then please indicate if you think the working 
>> group should work on the document to include
>>
>> A) Recommendation of adding denial of existence proofs in the chain provided 
>> by the extension
>> B) Adding signaling to require the use of this extension for a period of 
>> time (Pinning with TTL)
>> C) Both
>
> For the record, (C) both.  And now to explain why:
>
> The first thing to understand is why this extension is needed in the first 
> place.  A partial
> answer can bee seen in the introduction to the draft. Please pardon burying 
> the lede, below
> I quote from the text of the introduction in order of presentation, but the 
> main point is closer
> to the end:
>
>   -----------------
>   This draft describes a new TLS [RFC5246] [TLS13] extension for
>   transport of a DNS record set serialized with the DNSSEC signatures
>   [RFC4034] needed to authenticate that record set.
>   -----------------
>
> We should note that an empty record set (NXDOMAIN or NODATA) is still
> a record set, and DNSSEC *authenticates* denial of existence, and it
> is necessary to also support denial of existence, in order to support
> downgrade-resistance against "TLSA-stripping".  The reason is that this
> extension is not being introduced into brand new internet in which the
> CA/B forum WebPKI does not exist and DANE will be the *only* way for
> TLS clients to authenticate servers.  For this extension to coexist
> with the WebPKI clients will need to be able to *some* servers via
> DANE and others (those that don't have DANE TLSA records) via the
> existing WebPKI.
>
> Suppose that, in the absence of authenticated denial of existence,
> and clients being able to rely on continued support for the extension:
>
>    * As will be the cast for most existing applications, the client
>      is willing to use the WebPKI when DANE TLSA records don't appear
>      to be availble.
>
>    * An attacker is able to obtain a fraudulent WebPKI certificate.
>
> Then the attacker can impersonate the target server by leaving out
> the extension and presenting just the fraudulent WebPKI certificate,
> and the client will have to accept this even when the real server
> previously employed the extension and provided TLSA records.
>
> What the above establishes is that in mixed environments, i.e.
> almost all use-cases for this specification, TLSA records provide
> no additional protection, if WebPKI fails, security is compromised
> even with DANE.
>
> Some have argued that this is OK, that even though the above
> "restrictive" use-case is unavailable we still get an "additive"
> use case, where servers can be authenticated with DANE when
> that happens to be present and otherwise WebPKI.  Sadly, that
> use-case is largely a mirage.  Firstly, given the existing
> dominant client base that only supports WebPKI, any server
> would in any case still need WebPKI certificates (say from
> Let's Encrypt), and that will suffice for all clients both
> those that support DANE and those that don't.  Thus enabling
> DANE on the server, only makes it possible to impersonate
> the server if DANE is compromised, but does not defend against
> WebPKI compromise.  So the server gets more complexity, and
> reduced security, and maybe even increased risk of failure
> if the TLSA records are managed carelessly and fail to match.
>
> No rational server operator will employ the "additive" mode.
> Some DANE idealists might do it to signal their support for
> the technology, but this will be futile, they'll get no real
> benefit from doing so.
>
> Continuing on with the introduction:
>
>   -----------------
>   The intent of this
>   proposal is to allow TLS clients to perform DANE Authentication
>   [RFC6698] [RFC7671] of a TLS server without performing additional DNS
>   record lookups and incurring the associated latency penalty.  It also
>   provides the ability to avoid potential problems with TLS clients
>   being unable to look up DANE records because of an interfering or
>   broken middlebox on the path between the client and a DNS server
>   [HAMPERING].  And lastly, it allows a TLS client to validate the
>   server's DANE (TLSA) records itself without needing access to a
>   validating DNS resolver to which it has a secure connection.
>   -----------------
>
> Here we see the promise of being able to get by without having
> access to a validating resolver, but validating resolvers deliver
> both signed data when present and signed proof of non-existence when
> the requested records are absent.  But most importantly:
>
>   -----------------
>   This mechanism is useful for TLS applications that need to address
>   the problems described above, typically web browsers or SIP/VoIP
>   [RFC3261] and XMPP [RFC7590].
>   -----------------
>
> This plainly shows that browser HTTPS was a motivating use-case
> for the extension.  Indeed earlier mention of latency concerts is
> also based on the reasons why browsers don't (want to) do DANE even
> when direct DNSSEC lookups are possible.
>
> Not just browsers, no existing application can adopt specification
> incrementally.  Even if the extension is required in the application,
> it is unrealistic to expect that all server domains will rapidly
> adopt DNSSEC.  At the moment there are ~6 million DNSSEC-signed
> domains, substantially concentrated in northern Europe, with
> fairly thin adoption generally (only ~800K domains out of ~120
> million in .com).  An application that expects the extension
> should expect to not find TLSA records for many servers it
> connects to, indeed many server domains will be unsigned, and
> the server would only be able to present denial of existence
> for the DS records of a parent domain, proving its domain
> "insecure" (in DNSSEC terms).
>
> The modifications in (A) and (B) are most similar to STS (not HPKP)
> and harden DANE-authenticated HTTPS against downgrade to just DV,
> and make going to all the trouble of supporting the extension at
> the server a tangible security benefit.  Absent such a benefit,
> no reasonable server operator will implement the extension. Just
> deploying a WebPKI certificate, which is necessary in any case,
> provides the same protection with less effort.
>
> The pin-time in (B) also allows servers to signal a zero pin time,
> and thus indicate an incomplete deployment, reducing breakage when
> clients find the extension partially deployed, but decide to expect
> it anyway for security reasons.
>
> The pin (pinning just the boolean presence of the extension, like
> STS pins availability of TLS) would not pin any of the TLSA data,
> that's subject to the normal, and typically short, DNS TTLs should
> the client choose to cache the presented DNS records.  Its lifetime
> would be measured in hours (not seconds) and I'd go with a 16-bit
> value that represent any time from 0 hours (partial deployment)
> to 65535 hours which is close to 7.5 years.
>
> The pin is set (or reset to a new value) when the server performs
> a handshake in which the extension is present with a non-zero TTL,
> and either provides matching TLSA records or a valid denial of
> existence (and is authenticated via WebPKI).
>
> For browser HTTPS, (in a separate specification) in might make
> sense to limit DANE support to just the "restrictive" case,
> PKIX-TA(0) and PKIX-EE(1).  There are many in the TLS and
> browser communities who don't trust the security of DNSSEC,
> and would be reluctant to authenticate sensitive browser
> connections based on DANE alone.  That's fine.  Just as
> DANE for SMTP limits the scope to DANE-TA(2) and DANE-EE(3)
> for reasons explained in section 1.3 of RFC7672, the converse
> can reasonably be argued for browsers.  This suggests even
> more strongly that DANE stripping matters (if "restrictive"
> turns out to be the main purpose of DANE in that space) and
> that this specification needs to harden DANE against downgrades.
>
> I should also mention that there is a user community that expects
> the IETF to make DANE support work in browsers and which would be
> once again left frustrated with the specification failing to meet
> their expectations.  For a published example:
>
>   
> https://service.networking4all.com/hc/en-us/articles/115001319589-Wat-is-DANE-en-DNSSEC-
>
> but I've certainly been party to various conversations with users
> where want DANE to work for their Web servers and browsers, the
> finer points to be worked out by this WG and browser/web server
> developers.
>
> And yet, as it stands, the deployment cost-benefit analysis for this
> extension in existing applications plays out as follows:
>
> COSTS:
>
>   * You still manage WebPKI certificates to support the majority of existing 
> clients.
>   * If the WebPKI is compromised, you're compromised.
>   * If DNSSEC is compromised, you're compromised
>   * You pay the complexity cost of also supporting the extension
>   * You might present incorrect TLSA records and the connection might fail 
> even when
>     it would otherwise succeed with WebPKI
>
> BENEFITS:
>
>   * Nothing other than bragging rights that you're cool enough to deploy a 
> shiny new technology
>
> I think that users deserve better than that, and that the extension should 
> have tangible
> security benefits not only in greenfield applications where DANE is the 
> mandatory authentication
> mechanism, but also in legacy applications where deployment would necessarily 
> be incremental and
> initially slow.
>
> Yes, there is not today an immediate backlog of implementations waiting to 
> adopt the
> specification into legacy spaces.  The same was true for DANE in RFC6698 when 
> the
> specification was completed in Aug 2012.  The first substantive 
> implementation work
> did not begin until Feb/Mar of 2013 and its later adoption was substantially 
> driven
> by the unanticipated news in June of that year.
>
> We don't know what the future will bring, the WebPKI is certainly looking 
> much more
> fragile lately than it did in the past with multiple failures at various CAs, 
> and
> the health of the ecosystem threatened by a new economic reality.  It is 
> prudent
> to have alternatives "in the wings", even if there is not an immediate rush to
> adopt.
>
> This specification should be sufficiently robust to support not only the 
> immediate
> narrow DPRIV use-case, but also other use-cases.  What's more adding support 
> for
> (A) and (B) in no way burdens the immediate adopters, all they suffer is a 
> short
> delay in the publication of the final document.  They can ignore the pin TTL,
> and given mandatory TLSA records are certainly not compelled to generate 
> denial
> of existence given that they're planning to have TLSA records.  It may however
> turn out that even there a capability to vend denial of existence could prove
> useful.
>
> In summary, the present specification fails to address its motivating 
> use-cases,
> provides no incremental adoption path, and is only narrowly fit for purpose 
> with
> some new applications, but provides no alternative security mechanisms in the
> existing application spaces where direct use DNSSEC by the client (bypassing
> this extension) is not an option.
>
> This is why my "hum" is for both (A) and (B), i.e. (C).
>
> --
>         Viktor.
>
> _______________________________________________
> 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