Subject: Re: [TLS] [dns-privacy] Martin Duke's No Objection on draft-ietf-dprive-xfr-over-tls-11: (with COMMENT)

From: "Martin Thomson" <[email-masked]>
Date: Thu, 29 Apr 2021 10:09:05 +1000

On Wed, Apr 28, 2021, at 20:27, Sara Dickinson wrote:
> An early version of this specification proposed a XoT specific ALPN in 
> order to distinguish this from a connection intended to perform 
> recursive to authoritative DoT (often called ADoT). ADoT is not yet 
> specified, but is the subject of ongoing discussions in DPRIVE. The 
> working group rejected this idea for XoT and switched to the current 
> spec which does not use an ALPN at all. 

No new protocol should use TLS without ALPN.  It only opens space for cross-protocol attacks.  Did the working group consider this possibility in their discussions?

---

From: Sara Dickinson <[email-masked]>
Date: Thu, 29 Apr 2021 13:51:29 +0100

> On 29 Apr 2021, at 01:09, Martin Thomson <[email-masked]> wrote:
> 

What the working group asked for following the ALPN discussion was that the document contain a description of the options an authoritative nameserver that supports XoT can use to manage TLS connections and the queries received on those connections  - that is provided in Appendix A: https://tools.ietf.org/html/draft-ietf-dprive-xfr-over-tls-11#appendix-A

As more context, the document also covers various existing mechanisms that can be used to manage zone transfers (including IP ACLs and TSIG) and how they combine with Strict and Mutual TLS authentication. The document specifies that the server MUST use either an IP ACL or mTLS to authenticate the XoT client. 

Regards

Sara.

---

From: "Eric Vyncke (evyncke)" <[email-masked]>
Date: Thu, 29 Apr 2021 13:10:04 +0000

Martin,

The IETF Last Call on this document has completed on the 20th of April 2021 but it is never too late of course.

I just added our security Area Directors in the loop so that know your question for their ballot due for next week.

Regards

-éric

-----Original Message-----
From: dns-privacy <[email-masked]> on behalf of Sara Dickinson <[email-masked]>
Date: Thursday, 29 April 2021 at 14:52
To: Martin Thomson <[email-masked]>
Cc: DNS Privacy Working Group <[email-masked]>, "[email-masked]" <[email-masked]>
Subject: Re: [dns-privacy] Martin Duke's No Objection on draft-ietf-dprive-xfr-over-tls-11: (with COMMENT)

    Regards

    Sara. 

    _______________________________________________
    dns-privacy mailing list
    [email-masked]
    https://www.ietf.org/mailman/listinfo/dns-privacy

---

From: "Salz, Rich" <[email-masked]>
Date: Thu, 29 Apr 2021 14:26:36 +0000

>    No new protocol should use TLS without ALPN.  It only opens space for cross-protocol attacks.  Did the working group consider this possibility in their discussions?

I don't believe that message has been made as public as it should be.

---

From: Eric Rescorla <[email-masked]>
Date: Thu, 29 Apr 2021 11:24:06 -0700

Probably not, but I agree with MT.

The general idea here is that any given protocol trace should only be
interpretable in one way. So, either you need the interior protocol to be
self-describing or you need to separate the domains with ALPN. I don't
believe that either the IP ACL or mTLS addresses this issue, and in fact
arguably mTLS makes the problem worse because it provides authenticated
protocol traces which might be usable for cross-protocol attacks.

-Ekr

On Thu, Apr 29, 2021 at 7:26 AM Salz, Rich <rsalz=
[email-masked]> wrote:

> >    No new protocol should use TLS without ALPN.  It only opens space for
> cross-protocol attacks.  Did the working group consider this possibility in
> their discussions?
>

---

From: "Salz, Rich" <[email-masked]>
Date: Thu, 29 Apr 2021 18:28:45 +0000

To make it obvious (I thought it was): I agree, and think we need to make that fact more widely known.

From: Eric Rescorla <[email-masked]>
Date: Thursday, April 29, 2021 at 2:24 PM
To: Rich Salz <[email-masked]>
Cc: Martin Thomson <[email-masked]>, "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>
Subject: Re: [dns-privacy] [TLS] Martin Duke's No Objection on draft-ietf-dprive-xfr-over-tls-11: (with COMMENT)

The general idea here is that any given protocol trace should only be interpretable in one way. So, either you need the interior protocol to be self-describing or you need to separate the domains with ALPN. I don't believe that either the IP ACL or mTLS addresses this issue, and in fact arguably mTLS makes the problem worse because it provides authenticated protocol traces which might be usable for cross-protocol attacks.

-Ekr

_______________________________________________
dns-privacy mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/dns-privacy<https://urldefense.com/v3/__https:/www.ietf.org/mailman/listinfo/dns-privacy__;!!GjvTz_vk!EtJaCTiH36U_bsA5vP82lZpBELKgq8908Dnb9MmdFc9M0FfjBeJMg3QwgwSs$>

---

From: Stephen Farrell <[email-masked]>
Date: Thu, 29 Apr 2021 19:38:01 +0100

> make that fact more widely known.

I think I agree but seems like ECH may add a subtlety - maybe
what we need to promote is the idea that new protocols should
define new ALPN strings, but also that intermediaries can't
depend on those to route connections as the inner and outer
ALPN values can be independent in the case of ECH (use of
which might not that visible to the application if a library
were to default to use of ECH where possible).

Cheers,
S.

> 
> From: Eric Rescorla <[email-masked]> Date: Thursday, April 29, 2021 at
> 2:24 PM To: Rich Salz <[email-masked]> Cc: Martin Thomson
> <[email-masked]>, "[email-masked]" <[email-masked]>,
> "[email-masked]" <[email-masked]> Subject: Re: [dns-privacy] [TLS] Martin
> Duke's No Objection on draft-ietf-dprive-xfr-over-tls-11: (with
> COMMENT)
> 
> interpretable in one way. So, either you need the interior protocol
> to be self-describing or you need to separate the domains with ALPN.
> I don't believe that either the IP ACL or mTLS addresses this issue,
> and in fact arguably mTLS makes the problem worse because it provides
> authenticated protocol traces which might be usable for
> cross-protocol attacks.
> 
> -Ekr
> 
> 
> On Thu, Apr 29, 2021 at 7:26 AM Salz, Rich
> <rsalz=[email-masked]<mailto:[email-masked]>>
> wrote:
>> No new protocol should use TLS without ALPN.  It only opens space
>> for cross-protocol attacks.  Did the working group consider this
>> possibility in their discussions?
> 
> _______________________________________________ dns-privacy mailing
> list [email-masked]<mailto:[email-masked]> 
> _______________________________________________ TLS mailing list 
> [email-masked] https://www.ietf.org/mailman/listinfo/tls
>

---

From: Allison Mankin <[email-masked]>
Date: Thu, 29 Apr 2021 14:49:40 -0400

Hi Ekr,

As Sara wrote, the spec had ALPN. The WG consensus during the IETF 108
meeting was very strong to take it out, including quite strong statements
from you along the lines that distinguishing between XoT and DOT was an
incorrect usage of ALPN.

I understand that the perspective changed since IETF108 (that WG discussion
was at the end of July 2020) and that communications were not wide enough
for us to know about it in March when the WG moved the draft to WGLC,
Directorates Review, and IETF LC

On Thu, Apr 29, 2021 at 14:25 Eric Rescorla <[email-masked]> wrote:

> TLS mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/tls
>

---

From: Eric Rescorla <[email-masked]>
Date: Thu, 29 Apr 2021 12:02:06 -0700

> from you along the lines that distinguishing between XoT and DOT was an

I don't have the message you are referring to at hand, so I'm not able to
respond to that. However, I don't believe that an ALPN is needed to
distinguish XoT from DoT because there is no confusion between the protocol
traces of XoT and DoT. However there should be an ALPN to distinguish XoT
and DoT from HTTP, SMTP, etc.IOW, this protocol should use ALPN="dot".

> Directorates Review, and IETF LC

I don't think anyone is saying that the WG somehow did something wrong
procedurally, merely that this is a defect that ought to be corrected prior
to publication.

-Ekr

---

From: Eric Rescorla <[email-masked]>
Date: Thu, 29 Apr 2021 12:03:31 -0700

> were to default to use of ECH where possible).

Correct. The purpose of ALPN in this context is to avoid cross-protocol
attacks on the endpoints. Reliance on them by intermediaries is difficult
absent some fairly strong assumptions about the endpoints.

-Ekr

> > https://www.ietf.org/mailman/listinfo/dns-privacy<
> https://urldefense.com/v3/__https:/www.ietf.org/mailman/listinfo/dns-privacy__;!!GjvTz_vk!EtJaCTiH36U_bsA5vP82lZpBELKgq8908Dnb9MmdFc9M0FfjBeJMg3QwgwSs$
> >
> >
> >
> >

---

From: "Martin Thomson" <[email-masked]>
Date: Fri, 30 Apr 2021 10:05:48 +1000

(dprive to bcc, because this is getting further afield)

> I don't believe that message has been made as public as it should be.

I see that UTA is working on a revision of RFC 7525.  Is text on this something that would be in scope.  I only just searched for "ALPN", finding nothing, so maybe it is not in the original scope and maybe there are things that might prevent expansion of scope.

---

From: "Valery Smyslov" <[email-masked]>
Date: Fri, 30 Apr 2021 09:25:39 +0300

Hi Martin,

> > >    No new protocol should use TLS without ALPN.  It only opens space for cross-protocol attacks.  Did the
> working group consider this possibility in their discussions?
> >
> I see that UTA is working on a revision of RFC 7525.  Is text on this something that would be in scope.  I only
> just searched for "ALPN", finding nothing, so maybe it is not in the original scope and maybe there are things
> that might prevent expansion of scope.

The original motivation for 7525bis was to update RFC 7525 in light of TLS 1.3 appearance.
However, I believe that recommendations for using ALPN are in scope of this document.

Regards,
Valery.

> Uta mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/uta

---

From: "Martin Thomson" <[email-masked]>
Date: Fri, 30 Apr 2021 16:46:05 +1000

> However, I believe that recommendations for using ALPN are in scope of 

How about a new Section 3.7 "Application-Layer Protocol Negotiation":

---
TLS implementations MUST support the Application-Layer Protocol Negotiation (ALPN) extension [RFC7301].  Correct use of ALPN ensures that clients and servers agree on a negotiated protocol.

Newly defined application protocols that use TLS MUST define an ALPN identifier and mandate the use of ALPN for negotiating the protocol.

An existing application protocol might not have been assigned an ALPN identifier.  For other protocols the ALPN identifier might not have been part of the original protocol definition, or use of ALPN might have been defined originally as being optional.  In all of these cases, implementations cannot require the use of ALPN.  A server implementation MUST fail a connection attempt with a fatal "no_application_protocol" alert if it is configured to use a protocol that has no assigned ALPN identifier and a client offers an "application_layer_protocol_negotiation" extension.
---

This last bit might be an update to RFC 7301, but it's important for protecting against cross-protocol attacks on clients that support protocols with ALPN identifiers where the use of ALPN is not guaranteed.

---

From: Stephen Farrell <[email-masked]>
Date: Fri, 30 Apr 2021 12:42:56 +0100

Hiya,

I like the text below as a starter. I'd suggest it also
include something to take into account the ECH issue
mentioned on the dpriv list [1]

S

[1] 
https://mailarchive.ietf.org/arch/msg/dns-privacy/3xL59_1P0ZHOUEYsDJ1Q22ZZVvo/

On 30/04/2021 07:46, Martin Thomson wrote:
>> The original motivation for 7525bis was to update RFC 7525 in light
>> of TLS 1.3 appearance. However, I believe that recommendations for
>> using ALPN are in scope of this document.
> 
> --- TLS implementations MUST support the Application-Layer Protocol
> Negotiation (ALPN) extension [RFC7301].  Correct use of ALPN ensures
> that clients and servers agree on a negotiated protocol.
> 
> Newly defined application protocols that use TLS MUST define an ALPN
> identifier and mandate the use of ALPN for negotiating the protocol.
> 
> An existing application protocol might not have been assigned an ALPN
> identifier.  For other protocols the ALPN identifier might not have
> been part of the original protocol definition, or use of ALPN might
> have been defined originally as being optional.  In all of these
> cases, implementations cannot require the use of ALPN.  A server
> implementation MUST fail a connection attempt with a fatal
> "no_application_protocol" alert if it is configured to use a protocol
> that has no assigned ALPN identifier and a client offers an
> "application_layer_protocol_negotiation" extension. ---
> 
> This last bit might be an update to RFC 7301, but it's important for
> protecting against cross-protocol attacks on clients that support
> protocols with ALPN identifiers where the use of ALPN is not
> guaranteed.
> 
> _______________________________________________ Uta mailing list 
> [email-masked] https://www.ietf.org/mailman/listinfo/uta
>