Re: [Add] Paul Wouters' Discuss on draft-ietf-add-dnr-11: (with DISCUSS)

tirumal reddy <kondtir@gmail.com> Fri, 15 July 2022 06:24 UTC

Return-Path: <kondtir@gmail.com>
X-Original-To: add@ietfa.amsl.com
Delivered-To: add@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 54091C157903; Thu, 14 Jul 2022 23:24:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level:
X-Spam-Status: No, score=-2.104 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RC7OyDy_i3Lh; Thu, 14 Jul 2022 23:24:02 -0700 (PDT)
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com [IPv6:2a00:1450:4864:20::129]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DCCC6C14F73E; Thu, 14 Jul 2022 23:24:01 -0700 (PDT)
Received: by mail-lf1-x129.google.com with SMTP id r9so6270540lfp.10; Thu, 14 Jul 2022 23:24:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=K7ZnnLrJFmZQNbeDU7DvX7TYXL2ll88h0Jf6LOH9cYc=; b=ljaYYI9bpSa753+hWHYbH+9bYjXmmzo48ljoVyMZHgGjuVF4FcBwvsRFgvc8R/QhX5 qWRRlihqnJeKxwv7i23sgk+ioWcJhhOO8iKaGP6A0PGbKSMa1meliD5dNkwtI+UcsiJC xTZLlSrQ9qc1+uz/UoQI6LFv3XQKpC5UT9M1Xb1NHKcFQ8I4MaexwCCmS6up223j4N6f llQHqVDkwH8oR0yQcMyE3NtcAkirGm7Z9FJZ+IyjJV0PYknVWlcWXt1LjJxHofL/9SD0 4WxQG9f8OF9MpVqQ0lH9h8pgLhEyBA1LKsB6ulDlRwYoXtxFDggg8Qo1sFal+bzvt3By L8og==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=K7ZnnLrJFmZQNbeDU7DvX7TYXL2ll88h0Jf6LOH9cYc=; b=UvNm1oaj63NH2sBG62GDtIetX4bfB8KS3q2Fo2YhxkNtnR1fRH6basjSPZiQk3IWrg F6J5qX3P8G+CKu5N30fNWfg1E9tivbspZTgP//BTAhkO6eh6B8jMWg8Dx6wZQq+UdLew IbRM53lcp6GP0E6CWYy936NgZgUOEolgnVGQPOgjlywvETfI4qM8MDQnaNXCTe1vCzHL gjjIJQogxWApOFII9t16Y780zb1uPb9wZXONbPmWqU26Kd09DSqs8nIfHFAQaJlBhAFS FcceZFcyf9bppY/lSk8RRWB2lQEwiVeQmOGHA7bWrnGXPtgSchrVskjOa5pfw6sDvurT R3Fw==
X-Gm-Message-State: AJIora+WCEi1CcAPfbpJrASz0HTM/xcMmlFj8XFUW+ARMzAL+5X8mJa+ zO7dHJ5euYVIp+SCSKoXYf7L+Z0nLUKKjMGkwl8=
X-Google-Smtp-Source: AGRyM1u4FQVmm8OVNWJ+g5F4sWysmcIoP+dUt9PnN3sV8CwvxbOTkqZcKnN6l0FVmhM223tKB/lxQ5aGrLCctkI0FdI=
X-Received: by 2002:a05:6512:ea2:b0:486:1dbb:653b with SMTP id bi34-20020a0565120ea200b004861dbb653bmr7430355lfb.328.1657866239654; Thu, 14 Jul 2022 23:23:59 -0700 (PDT)
MIME-Version: 1.0
References: <165774161599.52839.7342794318640205540@ietfa.amsl.com>
In-Reply-To: <165774161599.52839.7342794318640205540@ietfa.amsl.com>
From: tirumal reddy <kondtir@gmail.com>
Date: Fri, 15 Jul 2022 11:53:48 +0530
Message-ID: <CAFpG3gc=Mpys9D3s8Eze=FUGXUbxHiHEzrQLnVDFST3HEQBYYg@mail.gmail.com>
To: Paul Wouters <paul.wouters@aiven.io>
Cc: The IESG <iesg@ietf.org>, draft-ietf-add-dnr@ietf.org, add-chairs@ietf.org, add@ietf.org, Andrew.Campling@419.consulting
Content-Type: multipart/alternative; boundary="0000000000004cc17e05e3d210a9"
Archived-At: <https://mailarchive.ietf.org/arch/msg/add/Uh3OqZftqQ8bs4SLbxlfIUKaZxk>
Subject: Re: [Add] Paul Wouters' Discuss on draft-ietf-add-dnr-11: (with DISCUSS)
X-BeenThere: add@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Applications Doing DNS <add.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/add>, <mailto:add-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/add/>
List-Post: <mailto:add@ietf.org>
List-Help: <mailto:add-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/add>, <mailto:add-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jul 2022 06:24:06 -0000

On Thu, 14 Jul 2022 at 01:16, Paul Wouters via Datatracker <noreply@ietf.org>
wrote:

> Paul Wouters has entered the following ballot position for
> draft-ietf-add-dnr-11: Discuss
>
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
>
>
> Please refer to
> https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/
> for more information about how to handle DISCUSS and COMMENT positions.
>
>
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-add-dnr/
>
>
>
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
>
> # Internet AD comments for {draft-ietf-add-dnr-11}
> CC @paulwouters
>
> ## Discuss
>
> The overarching issue of the ADD WG in general is the concern that using
> the local network's DNS server (encrypted or not) is a privacy concern.
> With HTTP dying and HTTPS sealing the last plain-text with Encrypted Client
> Hello (ECH), DNS is the last resort of getting to know the enduser's
> intent of where they are trying to connect to.
>
> There are many parties interested in seeing the DNS query content, but
> the enduser is rarely able to determine whether the local network used
> can be trusted. This is true for coffee shops, hotels, malls but also
> their home ISP. The only clear case of trust is the enterprise user, who
> is provisioned (forced) via their enterprise management to use specific
> DNS resolvers.
>
> There are a number of well-known public DNS services such as Google DNS
> (8.8.8.8), Quad9 (9.9.9.9) and Cloudflare (1.1.1.1). Arguably, these
> servers have a better reputation of protecting the enduser's privacy
> than most local networks, as endusers cannot trust most local networks
> they use.
>
> The question all of this raises is, whether the user isn't better of
> just never trusting or using the local network's DNS server, whether
> encrypted or not. In that case, all of these ADD documents have little
> value. For example, we see this already with Firefox and its TRR program
> https://wiki.mozilla.org/Trusted_Recursive_Resolver and to some extend
> with the Android phone "private DNS" feature
>
> https://www.howtogeek.com/795644/how-to-enable-secure-private-dns-on-android/
>
> On the other hand, we have the argument of, if the enduser is using
> the local unencrypted DNS, it might as well use the local encrypted DNS.
> While this is true if this decision is hidden from the enduser, if the
> enduser believes they are using "encrypted DNS", they might not be aware
> that this encrypted connection still reveals all privacy sensitive data
> to the local network entity (or its trusted third party). An aware enduser
> might also make different choices when they think their DNS is "safely
> encrypted", such as visiting the website of an abortion provider. That is,
> the ADD specifications might lure the enduser in a false sense of security.
> To me this is one of the biggest issues while reviewing the ADD drafts. Are
> these drafts potentially harmful to the enduser, or does it only offer
> improvements to the status quo of the current common (non-encrypted) DNS
> topologies? While the latter could be true, I do believe based on the
> development seen at Google/Android and Mozilla/Firefox, I think we are
> already far into the phase where the enduser only decides _which_ remote
> trustworthy encrypted DNS service they are going to use and as such only
> use the local network DNS to kickstart their internet connection (captive
> portal, paywall) after which they switch to remote encrypted DNS service.
>
> And that of course, raises an issue with DNS security providers, who
> wish to monitor and firewall all their DNS clients' DNS requests to
> improve enduser security. This includes government mandates to ISPs to
> filter certain DNS requests for local legal reasons. Which again raises
> the issues of where such filtering power can be abused by authoritative
> regimes, restrictive cults (eg scientology netnanny).
>
> To summarize, I am really on the fence with respect to all the ADD drafts.
> While "encrypted DNS" is always better than "unencrypted DNS", the
> overarching issue of "never use or trust the local DNS resolvers" trumps
> the DNR /DDR protocols. For those who can dictate how their users MUST
> use DNS (eg Enterprise usage, parental control, opt-in security software),
> device provisioning/configuration options are available that require no
> ADD protocols with the exception of draft-ietf-add-svcb-dns.
>

The policy of a client to select the discovered network-signalled encrypted
resolver is out of scope of the ADD WG charter. The client may have a
policy to select the discovered resolver only if it has sufficient
reputation (e.g.,  Comcast provided encrypted resolver added to the TRR of
Firefox, see
https://blog.mozilla.org/products/firefox/firefox-news/comcasts-xfinity-internet-service-joins-firefoxs-trusted-recursive-resolver-program/).
In deployments like home/mobile networks offering network security
services, Enterprise networks allowing the use of BYOD (without MDM) can
only rely on DNR/DDR to signal the network-designated encrypted resolver.
The end-user may opt to use the network-signalled encrypted resolver in
trusted networks and use an external resolver in untrusted networks.
Further, DNR prevents on-path attack and pervasive monitoring of DNS
messages in the local network by allowing local DNS to upgrade from
plaintext to encrypted. In addition, it helps UX by using DNS names for the
DNS servers (rather than IP addresses).



>
> ###
>
> Encrypted DNS servers need a public FQDN because otherwise you cannot get
> a certificate for all connecting clients that are not provisioned with a
> private/enterprise CA. How do home users run their own without having a
> public domain? And how do I authenticate the encrypted DNS on 10.1.1.1
> that has no FQDN? (and really, has no verifiable identity at all).
>

The FQDN can be provisioned by the ISP managing the CPE or the security
service vendor offering network security service can provision the CPE with
a real FQDN (please see section 4 in
https://datatracker.ietf.org/doc/html/draft-boucadair-add-deployment-considerations-00
for
more details).


>
> ###
>
>      The DNS client verifies the connection based on PKIX validation
>
> No CRLs, OneCRL updates, no OCSP, no Certificate Transparency is available
> without functional DNS. So full PKIX validation as specified here is not
> available.
>

Yes, the operational considerations discussed in
https://datatracker.ietf.org/doc/html/rfc8484#section-10 are applicable, we
will update the draft.


>
> ###
>
>      The DNS client uses Web PKI trust anchors by default unless
>      configured otherwise.
>
> CAB/Forum is currently, as far as I know, not taking encrypted DNS into
> account
> for their BR's. Also, every OS and even some applications use their own
> "webpki"
> root store that differs from each other. This can lead to interoperability
> issues.
>

We fixed text, please see
https://www.ietf.org/rfcdiff?url1=draft-ietf-add-dnr&url2=https://raw.githubusercontent.com/boucadair/draft-btw-add-home-network/master/draft-ietf-add-dnr.txt.
Applications like browsers use their own trust store and can possibly be
configured to use the OS trust store (see
https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox)
but only for IT-managed devices. This is the state of the industry and this
draft cannot resolve the dilemma. Please let us know if you have any
specific text recommendation to update the draft.



> ###
>
> Spoofing attacks are mentioned in the document. Obtain _any_ certificate
> from Let's
> Encrypt via ACME, eg using "something.example.com", then spoof
> authentication-domain-name
> on the wifi. While this attack might be blocked by the AP not allowing
> wifi clients to
> send packets to each other, this is not true for all networks, and
> especially not for
> home networks where the goal is for local clients to be able to connect to
> each other.
> Is there a better way to lock the authentication-domain-name?


DHCP shield can defend against the attack and it is enabled by default in
modern home routers.


One possible method might
> be to bind it to the ESSID. eg if the ESSID is wifi.nohats.ca. one could
> only allow
> authentication-domain-name to be a name within nohats.ca. Some method of
> reducing the
> scope of this attack is needed I believe.
>
> ###
>
>    authentication-domain-name (variable length):  A fully qualified
>       domain name of the encrypted DNS resolver.  This field is
>       formatted as specified in Section 10 of [RFC8415].
>
>       An example of the authentication-domain-name encoding is shown in
>       Figure 2.  This example conveys the FQDN "doh1.example.com.", and
>       the resulting Option-length field is 18.
>
>        +------+------+------+------+------+------+------+------+------+
>        | 0x04 |   d  |   o  |   h  |  1   | 0x07 |   e  |   x  |   a  |
>        +------+------+------+------+------+------+------+------+------+
>        |   m  |   p  |   l  |   e  | 0x03 |   c  |   o  |   m  | 0x00 |
>        +------+------+------+------+------+------+------+------+------+
>
> The draft says "as specified in Section 10 of [RFC8415]" but that is just
> a redirect to Section 3.1 of [RFC1035] which doesn't tell me how to
> encode the NAME. For example, I do not understand why one "." is encoded
> as 0x07 and another "." is 0x03 ?
>

It is following the name space definition discussed in
https://datatracker.ietf.org/doc/html/rfc1035#section-3.1, 0x07 is the
length of the label ("example") and 0x03 is the length of last label
("com").



> ###
>
>       Addr Length:  Length of enclosed IPv6 addresses in octets.  When
>       present, it MUST be a multiple of 16.
>
> Why not just a one octet counter then? The number of IPv6 addresses that
> follow.
> Then the length of the Addr field becomes counter times 16 octets. That
> seems
> more constrained than "multiple of 16"


Med will follow-up on this comment and rest of the ones related to packet
layout.


>
> ###
>
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |                                                               |
>       |                         ipv6-address                          |
>       |                                                               |
>       |                                                               |
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |                              ...                              |
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>
> The diagrams lack reference octets. What is the width ? or 4 rows ? or ?
> I assume this is supposed to be 4 octets wide and 16 octets total? eg
> I would write:
>
>                            1                   2                   3
>        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>       +---------------------------------------------------------------+
>       |                                                               |
>       |                         ipv6-address                          |
>       |                                                               |
>       |                                                               |
>       +---------------------------------------------------------------+
>       |                              ...                              |
>       +---------------------------------------------------------------+
>
> (also my pet peeve is people using +-+-+-+ instead of -----)
>
>
> ###
>
>        A value of zero means that this Authentication Domain Name MUST no
>        longer be used.
>
> Why not just omit the entry ? Are clients supposed to keep old entries for
> their entire lifetime even if when asking a new list, those entries no
> longer
> appear? That is not clear from this document. Either that should be made
> explicit, or the values of 0 should not be allowed.


> ###
>
>    By default, Encrypted DNS connections received from outside the local
>    network MUST be discarded by the encrypted DNS forwarder in a CPE.
>
> What is an "encrypted DNS forwarder in a CPE"? This is not defined in the
> document and I am confused. I assume the CPE announces some encrypted DNS
> server as either itself or to some external IP at the ISP network?
>

Yes, encrypted DNS forwarder is co-located on the CPE.


>
> If itself, how can it get a real FQDN the client can verify with PKIX
> using CAB/Forum ?


Please see my above reply for provisioning a real FQDN on the CPE and using
ACME to get a PKIX certificate.



> If to an external IP, isn't it just acting as a NAT/router
> forwarding packets and then what does it mean to be an "encrypted DNS
> forwarder" ?


> ###
>
>    This recommendation is meant to isolate local network
>    DNS resolver services from the public Internet and prevent external
>    attacks against the local Encrypted DNS resolver.
>
>    If the DHCP responses or RAs are dropped by the attacker, the client
>    can fallback to use a preconfigured encrypted DNS resolver.
>
> This raises the big question of why you think that strategy is a "fallback
> strategy" and not the default behaviour of the client. Wouldn't it be more
> secure if there is no DHCP/RA drop attacks possible? See my introduction
> text.
>

It is upto the client policy to give higher precedence to preconfigured
encrypted DNS resolver over the discovered resolver or vice versa.

Cheers,
-Tiru


>
> ###
>
> Multihoming is declared out of scope, but realistically most devices we are
> talking about here are phones, and those are all multihomed. So I feel
> pretty
> strongly that it should not be left out of scope.
>