Re: [Add] [EXTERNAL] Re: draft-grover-add-policy-detection-00

Brian Dickson <brian.peter.dickson@gmail.com> Wed, 17 July 2019 22:00 UTC

Return-Path: <brian.peter.dickson@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 050791200E7 for <add@ietfa.amsl.com>; Wed, 17 Jul 2019 15:00:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SVVveBZx2oAp for <add@ietfa.amsl.com>; Wed, 17 Jul 2019 15:00:01 -0700 (PDT)
Received: from mail-vs1-xe34.google.com (mail-vs1-xe34.google.com [IPv6:2607:f8b0:4864:20::e34]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1D78912006A for <add@ietf.org>; Wed, 17 Jul 2019 15:00:01 -0700 (PDT)
Received: by mail-vs1-xe34.google.com with SMTP id y16so17645313vsc.3 for <add@ietf.org>; Wed, 17 Jul 2019 15:00:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9tLT6Zkc4TpGXl64SfHf7yciswb+QDvGkAklYkJvjN4=; b=IbOgiL5DnWFq+WciKeBeaAl4V8q3fbXMMUw7KiEtTkoapsbVIf52r1SMlgddDYwmWe hTfk1hgfKXtQ5gTRgaYUggb2YxrPY29uAHZRVAeSzsdf7q1e7m/xe+XkdK2UYF0U5m39 OPlsLR/Vw3UEIsdHNErKMjYZQNOF6Vf1dVAdtNsRxqpxyUU6m7Hj0jDR6kInzFxIOUOJ XLavAgJsXJiruaGB2pbrowlXthvS2L39mgRwnpnbzR0azq7VV94JDZIUi038M49RA6HC N7bH64/du7k55Pj3tuAn09OjrPXkhQz0sm6jfA6nqnFPZLgtA3c5EbmvNuu0o7J0nlgL jLLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9tLT6Zkc4TpGXl64SfHf7yciswb+QDvGkAklYkJvjN4=; b=AMzwst3r707V+azenbLYE8SBQpeJaBfqdX2JIkphxtkwv8+oFcRo4kNNiMSV/Nq6/G 7R4DgfgJYV5rin1rPLFAaliMCLGBvtCyJ1R1rx/zWQ2krPrE0LqITV/9vXHI0XwEuhYg bnSWgpoSjPOXbU+YOdqcSlp94YcfTuQa+SRQfYsKGpOXLdlyMN5hOmaiF3miC8YtxhdU I8ZqRm1N1H9Wv76y60TEFanVjG5JmG32ZBCy+IKv6ASW+jGCSA0FEQjHja9xZwupfcoT JCNPk9gP9fo8VbnGp3oA2Rl06sHvNhGXHHDOmKkjHk83nI4HPKeT6/3/K093UFEesTcw r/0A==
X-Gm-Message-State: APjAAAUreZVb8jlqBZfCxUgsdqtNueL2LphQELbx9QTuk3pX9D6V412V AN8nqSOYjrEW+G/J6orRxONO7Qh3zn6EH1IBEVA=
X-Google-Smtp-Source: APXvYqwKv/0MFmEutt+JxrEkRUVUCiiWvNqSJO/5XlVD/TQCBHMH7DknDV3szhmQlPhFl3c5yn6uZR2mcmoREEQYxLk=
X-Received: by 2002:a67:edcf:: with SMTP id e15mr26896986vsp.75.1563400799790; Wed, 17 Jul 2019 14:59:59 -0700 (PDT)
MIME-Version: 1.0
References: <CAChr6SwEUz9MrdRA0bnv9f-oNi0oUHkfRKjd9-o6jwhuckLXdw@mail.gmail.com> <CAFWeb9LNdT=EYVKTsYDxcBCQKoQFNShKotYtWujt4U9GA-V1mg@mail.gmail.com> <CAFWeb9+eWKSKY9O2JLn9-0+Zq7hrD48F-y+Y4T-iRaaF0vtdOA@mail.gmail.com> <A45F4F74-D6C1-435A-A52F-C2DEA82E2999@sky.uk> <CAFWeb9JVBj+Yehup5q4v9X-7XDY+02frd-04AQGL2HoSLON2qA@mail.gmail.com> <CABcZeBMY9q9vKGse1svzbvXF_dSHA+9q06j4ugDVCZP9VT1koQ@mail.gmail.com> <CAChr6Sz5Rfz=UxOYuPguSvVK2HCX2ZoA1-FytW7+EOUxN8y46Q@mail.gmail.com> <CABcZeBNB7ASu2U3ZMBZ+OOxEhbSnhDXwFN3Lsex1uzVSDv3R=Q@mail.gmail.com> <CAChr6SwEwRRX7BA6ZCeBuC93hFxbfi3d7G_3G3VA7Lm09yuneg@mail.gmail.com> <CABcZeBNa97Vb6Fw-fMhoZnMezGtm3nJODENN4=XXsz7GWxf2Cg@mail.gmail.com> <CAChr6Sxm__NroZ92v4HL_6iCa62fwYgNw9r8ZDAxCdzVwNoDGw@mail.gmail.com> <20190716190219.5DEF4156CDF0@fafnir.remote.dragon.net> <CAChr6SzSkVU5xbh0sZCCEgd7BUdr-dMorNq=5iMkWp66k8PVow@mail.gmail.com> <15205609-8203-4C6F-9DE7-14D492873C51@rfc1035.com> <CAChr6Syf_=3__jcv6D7b1JokGFYpFuy9y9419V0nCAx=MMh24A@mail.gmail.com> <1513817825.9983.1563350802523@appsuite-gw1.open-xchange.com> <CA+9kkMAdGF_U-syxtFVz-MfBfv-GF_CFouvuUhqcSH96-=Hkjg@mail.gmail.com> <ABBFB472-DC7C-48E2-999E-C364BFD3260E@open-xchange.com> <CA+9kkMBO3LAhVmC+PzBoO7V5vzrfeYyrEPdq6s5nRBrYniqaNA@mail.gmail.com> <CAH1iCiqsSWRm7hbwcaoRYUaoLf-DCDXw8cZy7abaYbOAMjJBPw@mail.gmail.com> <CA+9kkMBjL5VqiH+vjxgTFq2d76O0yoyeJdQF6HhKvO_pOdzDgA@mail.gmail.com> <CAH1iCio9ktw2N+tLq9bkGCT3H9SN5AyqHst11hWKY_YwbFxVJw@mail.gmail.com> <CA+9kkMBa67gKSFf04pRPS8KxhCupvRm44gKQE_v4J6SNbj5zxg@mail.gmail.com>
In-Reply-To: <CA+9kkMBa67gKSFf04pRPS8KxhCupvRm44gKQE_v4J6SNbj5zxg@mail.gmail.com>
From: Brian Dickson <brian.peter.dickson@gmail.com>
Date: Wed, 17 Jul 2019 14:59:47 -0700
Message-ID: <CAH1iCioO2yQ_VH-_R+04ShsEXm+-T8agyGc_aRfCBw==i9gdEw@mail.gmail.com>
To: Ted Hardie <ted.ietf@gmail.com>
Cc: Neil Cook <neil.cook@open-xchange.com>, Vittorio Bertola <vittorio.bertola@open-xchange.com>, add@ietf.org, Rob Sayre <sayrer@gmail.com>
Content-Type: multipart/alternative; boundary="000000000000502b17058de79d77"
Archived-At: <https://mailarchive.ietf.org/arch/msg/add/i7xxiYDbnQrFQ0JR9oYMlcBBoEI>
Subject: Re: [Add] [EXTERNAL] Re: draft-grover-add-policy-detection-00
X-BeenThere: add@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 17 Jul 2019 22:00:05 -0000

On Wed, Jul 17, 2019 at 1:49 PM Ted Hardie <ted.ietf@gmail.com> wrote:

> Hi Brian,
>
> Some comments in-line.
>
> On Wed, Jul 17, 2019 at 12:46 PM Brian Dickson <
> brian.peter.dickson@gmail.com> wrote:
>
>>
>>
>> On Wed, Jul 17, 2019 at 11:56 AM Ted Hardie <ted.ietf@gmail.com> wrote:
>>
>>> On Wed, Jul 17, 2019 at 11:40 AM Brian Dickson <
>>> brian.peter.dickson@gmail.com> wrote:
>>>
>>>>
>>>> The root of the problem is visible in "if they chose not to". The
>>>> nature of DoH, is that the network operator (regardless of who they are) is
>>>> unable either detect or prevent guests (or users or BYOD or whoever) from
>>>> not complying with your network policy.
>>>>
>>>>
>>> I disagree.  It forces the existence of the network policy to be
>>> visible, but it is entirely possible to deny network access to a system
>>> which is non-compliant.  It is not as simple as blocking or intercepting
>>> all port 53 traffic, but that method never addressed the reality that
>>> cleartext traffic on that port was available to an observer.  To get both
>>> confidentiality and policy enforcement via this means, practice will need
>>> to change.  It will need to be visible to the system consuming the DNS (be
>>> it a browser, an OS, or some other application), and the enforcement
>>> mechanism will have to be better integrated into reachability mechanics.
>>> That is definitely new code for most people, but it is not impossible.
>>>
>>
>> So, I'd like to use a fairly simple existence proof (i.e. demonstrate a
>> proof-of-concept model that would scale and work) on re-implementing the
>> port-53 model, using DoT.
>>
>> Client attempts to contact random DoT server. Network monitoring systems
>> see new DoT traffic between new pair of hosts (on port 853), alerts if not
>> blocked, or perhaps the network already blocks such random connections on
>> port 853 (check.)
>>
>
> If blocked, the client is dead in the water without an application or host
> configuration change.
>
> Client attempts to contact well-known DoT server (e.g. Quad9, CloudFlare,
>> Google, or similar). Network policy permits this (check). Or, network
>> policy does not permit this (check).
>>
>
> If blocked, the client is dead in the water without an application or host
> configuration change, as above.
>

The "dead in the water" mode presumes a specific deployment model on both
the operator of DNS services, and on the implementer of the client.

Even the current "beta" deployments of DoH have configurations for
"fall-back" to other choices of protocol and/or server.

The "dead in the water" issue can very easily be handled via an
informational or BCP RFC, on how to deploy and/or migrate to DoT.

This very much looks like the deployment of IPv6, including the "happy
eyeballs" stuff.


>
>
>>
>> Client attempts to contact local DoT server (e.g. server on IP handed out
>> by DHCP or equivalent, or locally configured). Network policy permits this
>> (check). Network surveillance of DNS queries performed on local DoT server
>> (check).
>>
>
> Note that the client is not aware in this scenario of whether the local
> DOT server is or is not blocking traffic, observing traffic, or anything
> else.  Your premise is apparently that by agreeing to use the local
> resolver they have agreed to whatever is being done.  In fact, there are
> existing scenarios (coffee shop with a portal page being the most
> prominent) where the local system will permit specific names to go to the
> local resolver to solicit those pages, but will forbid anything else.  So
> some more subtle scenarios already exist.
>
>
>> Client attempts to contact random DNS/53 server. (Either allowed or
>> denied, i.e. same as today, including monitoring elements if allowed). No
>> change (check).
>>
>
> And subject to observation or interference by on-path attackers, as has
> been discussed.
>
> Yes, network surveillance of DNS queries on DoT requires operation of a
>> DoT server to facilitate that.
>>
>
> If you run a local DoH service and the client attaches to it, the
> situations are parallel.
>
>
>> Use of DoT, exclusively, allows the enforcement of that policy at a
>> network level (ACLs with respect to port 853). The end result is a network
>> policy of, "use our DNS service, or none at all, or don't use our network".
>>
>> If you mean "only DoT allows this", then I continue to disagree.  If you
> mean that only using DoT within this context allows this, I agree.
>

I don't understand how you can disagree on this.

Compare two scenarios:
- client connects (or attempts to connect) to a random DoT server (on port
853).
- client connects (or attempts to connect) to a random DoH server (on port
443 at a specified URL).

Since DoT uses 853 exclusively, detecting and blocking are possible (and I
assert, trivial).

How would either detection or prevention of *just* DoH be possible, as
distinct from random HTTPS traffic?
There are plenty of scenarios where a random host standing up a DoH service
(e.g. on a shared hosting site via any feasible attack vector) becomes an
undetectable DNS vector (for anything value of "bad").

This is the poster child case, IMHO.



>
>
>> None of the above *requires* host-level changes. The above certainly
>> plays nice with any host-level augmentations on other explicit ways of
>> publishing and consuming policy.
>>
>> I don't see any way of achieving the same policy enforcement result,
>> without implementing strict host-level validation mechanisms, which is a
>> change over the DoT-only scheme above.
>>
>>
> The theory that would go with this draft runs something like this:
>
> * put up a signal that hosts and applications can check to see if
> non-local DNS is permitted (and possibly, provide data on where the local
> secure DNS resolver is, if provided).
>
> * link the dns resolver to the reachability management system (e.g. a
> firewall) and permit traffic to exit the network only to destinations which
> have been resolved via the local DNS and which have passed whatever checks
> you have instituted.
>
> A non-compliant visitor will then only be able to reach destinations which
> have already been whitelisted by previous resolutions; that means that they
> likely will be able to reach various CDNs, popular services, and so on, but
> won't be able to reach random hosts that have not already been vetted by
> the checks you instituted.
>

I would go further, and suggest some comments:

   - A lot of the perceived demand for DoX is in fact demand for public
   resolver availability, to handle the problem of "hotel/cafe DNS
   shenanigans".
   - Many of the common issues between "shenanigans" and DoX usage, would
   benefit from client-side DNSSEC validation.

In particular, the behavior of DNSSEC validation failure (returning
SERVFAIL) works well with the use of multiple resolver and protocol "lists"
(hierarchical structures).
E.g. try local port 53 server obtained by DHCP, with (one or more) DoT
server(s) (regardless of DoT server choice(s)) as a more-secure fall-back.
If DNSSEC is not available, fall back to something better.
If DNSSEC is available, validate.
Upon validation failures (including rewritten NXDOMAIN), fall back to
something better.
Performance on valid responses may be faster.
As long as some resolver answers with DNSSEC-valid responses, correct
responses are guaranteed.

For privacy-first, reverse the order of fallback, trying DoT first.
Possibly fail hard if no DoT answers are available.


>
> Is this new code?  Absolutely.  But it is not a host-level change, and it
> permits more without host re-configuration than the pure blocking mechanism
> you outlined.*
>
>
>> In the DoT world, the policy is inherently visible. If you try to use a
>> particular DoT provider, you know immediately whether that is possible or
>> not.
>>
>>
> It cannot distinguish between this policy imposition, a reachability
> failure, and a service failure.  As a signal, it is pretty ambiguous.
>

I agree. By itself it is insufficient. I am not proposing *not* doing some
kind of publication of policy. I am proposing doing so via DoT, and
preferably also with DNSSEC client validation.

And perhaps DANE needs to be included in the discussion, particularly on
the secure bootstrap process.
(For DANE to work, you need DNSSEC, but you don't need privacy, and you
don't need any CAs. You need names, and signed zones for those names, and
TLSA records, but that's reasonably straightforward, IMHO.)

Brian


>
>> The issue of whether a particular DoT server is or is not providing a
>> certain level of privacy, is perhaps something that could be signaled, but
>> I don't see any way of validating that signaling beyond, at best, some kind
>> of contractual enforcement.
>> I.e. if you want to be sure the party you are talking to is or is not
>> doing what they say they are doing, pretty much the only way to be sure
>> requires the involvement of law enforcement and/or lawyers.
>>
>> The difference between DoT and DoH are whether host-level mechanisms are
>> required, to achieve any meaningful assessment of compliance.
>> Host-level compromise defeats host-level mechanisms, so other than secure
>> ways of proving host non-compromise (like TPM things), it is provably less
>> secure than adding network-based detection/enforcement.
>>
>> (None of the above applies to malware that does its own communication to
>> C&C systems, but it does apply to malware that leverages browser-based DoH
>> capabilities to make use of DNS for any of C&C, exfiltration, payload
>> acquisition, etc.)
>>
>>
> I'm afraid I must continue to disagree with your premise.  I have no issue
> at all with increased deployments of DoT, but I do not agree that this
> rules out the use of DoH.
>
> regards,
>
> Ted
>
> *For those that outsource this, it may also require a new service that
> allows the topology decisions and the resolution services to be linked.
> There are several ways to accomplish this by using remote configuration, by
> taking traffic out of the network to a service provider quarantine via VPN,
> or by some combination of the two.  Again, this is new.  But it is not
> impossible, as very similar systems have been built by organization which
> centralize these operations; it requires that these be made available to
> new customers.
>
>
>> Brian
>>
>