Re: [IPsec] draft-pauly-ipsecme-split-dns

Benjamin Kaduk <kaduk@mit.edu> Thu, 28 June 2018 01:01 UTC

Return-Path: <kaduk@mit.edu>
X-Original-To: ipsec@ietfa.amsl.com
Delivered-To: ipsec@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4E011130E69; Wed, 27 Jun 2018 18:01:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 91mfQliURThx; Wed, 27 Jun 2018 18:01:26 -0700 (PDT)
Received: from dmz-mailsec-scanner-8.mit.edu (dmz-mailsec-scanner-8.mit.edu [18.7.68.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 45910130E63; Wed, 27 Jun 2018 18:01:26 -0700 (PDT)
X-AuditID: 12074425-183ff70000000427-16-5b343364f897
Received: from mailhub-auth-3.mit.edu ( [18.9.21.43]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by dmz-mailsec-scanner-8.mit.edu (Symantec Messaging Gateway) with SMTP id BE.05.01063.563343B5; Wed, 27 Jun 2018 21:01:25 -0400 (EDT)
Received: from outgoing.mit.edu (OUTGOING-AUTH-1.MIT.EDU [18.9.28.11]) by mailhub-auth-3.mit.edu (8.13.8/8.9.2) with ESMTP id w5S11NnL008668; Wed, 27 Jun 2018 21:01:23 -0400
Received: from kduck.kaduk.org (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id w5S11Hk8006778 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 27 Jun 2018 21:01:19 -0400
Date: Wed, 27 Jun 2018 20:01:16 -0500
From: Benjamin Kaduk <kaduk@mit.edu>
To: Paul Wouters <paul@nohats.ca>
Cc: Eric Rescorla <ekr@rtfm.com>, "draft-ietf-ipsecme-split-dns.all@ietf.org" <draft-ietf-ipsecme-split-dns.all@ietf.org>, Tero Kivinen <kivinen@iki.fi>, IPsecME WG <ipsec@ietf.org>, "Waltermire, David A. (Fed)" <david.waltermire@nist.gov>, Nico Williams <nico@cryptonector.com>
Message-ID: <20180628010116.GA1173@kduck.kaduk.org>
References: <CABcZeBObub+rYYURt9SSumYqqWGxDMqhOG64oA+979n=mduXMw@mail.gmail.com> <20180619230148.GE4218@localhost> <CABcZeBNmavpZvzNRZBdOTKQYZ=yW=y2poaoVtsOeESNyRrG15Q@mail.gmail.com> <alpine.LRH.2.21.1806200002340.18235@bofh.nohats.ca> <CABcZeBPbq9ga8oSQ09GLyonPgZLOpFAy9hDJYAagUFz7GSHEoQ@mail.gmail.com> <alpine.LRH.2.21.1806201010490.6077@bofh.nohats.ca> <CABcZeBO0FjTWhhqv4s9Jf=+Pb61iGx+n=u0DWjDyM7X=NDm6eg@mail.gmail.com> <alpine.LRH.2.21.1806201511530.31124@bofh.nohats.ca> <20180620193225.GL4946@kduck.kaduk.org> <alpine.LRH.2.21.1806201534260.31124@bofh.nohats.ca>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <alpine.LRH.2.21.1806201534260.31124@bofh.nohats.ca>
User-Agent: Mutt/1.9.1 (2017-09-22)
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBKsWRmVeSWpSXmKPExsUixCmqrZtqbBJtMGk1r8XGnn9sFkf7nS1W vD7HbrF/ywsg7/xzNotT146wWby/dYnJgd3j5alzjB5Llvxk8jj8dSGLx7WTf1k9vs9j8pj8 uI05gC2KyyYlNSezLLVI3y6BK+P6xTPMBVftK6b8nsbSwPjUqIuRk0NCwERi/Y9HrCC2kMBi JomPe60g7I2MEtsWJHYxcgHZV5kkmnb1MIEkWARUJRau/sUCYrMJqEg0dF9mBrFFBBQlJp15 xALSwCywi0niyon5bCAJYQEjiTcrfjCC2LwCxhIz9pxigZh6jkXi+dZPTBAJQYmTM5+ATWUW 0JK48e8lUJwDyJaWWP6PAyTMKeAoceLmE7BLRQWUJfb2HWKfwCgwC0n3LCTdsxC6FzAyr2KU Tcmt0s1NzMwpTk3WLU5OzMtLLdK10MvNLNFLTSndxAgKfnYX1R2Mc/56HWIU4GBU4uEN6DKO FmJNLCuuzD3EKMnBpCTKy/EYKMSXlJ9SmZFYnBFfVJqTWnyIUYKDWUmEV+I+UI43JbGyKrUo HyYlzcGiJM6bs4gxWkggPbEkNTs1tSC1CCYrw8GhJMFrZ2QSLSRYlJqeWpGWmVOCkGbi4AQZ zgM0XA2khre4IDG3ODMdIn+K0ZhjxvbJk5g5/ryfOolZiCUvPy9VSpx3oSFQqQBIaUZpHtw0 UAKTyN5f84pRHOg5Yd49IFU8wOQHN+8V0ComoFWu7UYgq0oSEVJSDYw+r6+rcrRsu3KDz+iv Te9r3e1xAZfXrjw4uX1/z67C2K6uVK2Wl8W75v2ofiTQfnC7zVM7AZV7zkabkyMu9O3WCm4X u/v8rn6D4evJi375m3AbiUW8cP/8NcJWuLTu36dJJQ4SB3I8Eu4ySm3f5mWbdfrZyXlHa1db GKc/COzLtaw6pzX9fLYSS3FGoqEWc1FxIgA1gJbSOwMAAA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipsec/vKLVtbEzJu47-lWe4DVjoVEYHDg>
Subject: Re: [IPsec] draft-pauly-ipsecme-split-dns
X-BeenThere: ipsec@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: Discussion of IPsec protocols <ipsec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipsec>, <mailto:ipsec-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipsec/>
List-Post: <mailto:ipsec@ietf.org>
List-Help: <mailto:ipsec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipsec>, <mailto:ipsec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Jun 2018 01:01:30 -0000

Sorry for the slow response; several things colluded to keep me
unavailable.  For bonus fun, mutt crashed trying to send this so I get to
try to reconstruct from scrollback history.  Hopefully nothing important
gets garbled along the way...

Do note that this is not really my area of expertise and is also not a WG
I'm responsible for, but I'm trying to help brainstorm a way past this
apparent impasse.

On Wed, Jun 20, 2018 at 03:55:02PM -0400, Paul Wouters wrote:
> On Wed, 20 Jun 2018, Benjamin Kaduk wrote:
> 
> > This seems like the main fear, yes, but perhaps not exclusively so.
> > It's kind of how users "always" click through certificate warnings in
> > browsers, or "alway" grant a mobile app all the requested permissions.
> > If, to expand unreasonably upon a previous example, connecting to the Red
> > Hat VPN wanted to take over redhat.com, openstack.com, rhbz.com,
> > rhmail.com, rh.zone, redhat.googleapps.com, rh.googleapps.com,
> > realham.googleapps.com, freeipa.com, freeipa.org, and centos.org, is it
> > reasonable to expect the user to look at the list and pick out
> > "realham.googleapps.com" as not belonging?  Maybe they think it's a
> > codename for some Red Hat project, but maybe it's something totally
> > unrelated and reflects overreach by the VPN provider.
> 
> If you are thinking of such a large list, then this information could be
> conveyed via the Enterprise VPN Profile that the user must install. Then
> you could either not allow any changes from that profile without updating,
> or you could decide as a client to present only new names to the user.
> This is all local policy between enterprise server and client. Just like
> the mandatory use of some algorithms can be (and are) set in those profiles.

Sure ... and local policy between the enterprise server and client could
also have the ability to actually show the list to the user.  (There's not
really a great reason for the enterprise to choose to do so, but if we're
hiding behind "local policy matter", we can keep our options open.)

> > It seems to border on unreasonable to have such a long list and expect user
> > knowledge.  On the one hand, the VPN provider "ought to know" what domains
> > it's responsible for (and are on the internal view), but on the other hand
> > this is essentially a self-certification and does not inherently have any
> > level of trust.  It would be great if there was some third party that could
> > provide some certification that the list of controlled domains is valid, or
> > at least not present in the public view
> 
> Names might be present in the public view and private view. That is not
> a valid criteria.

It's not entirely clear that a true third party would be needed.  Perhaps a
cross-signed (by public and private keys) statement of joint ownership
could be visible in the private DNS, for example.  Yes, that's a logistical
hassle to arrange, but we're still in the "is the crypto possible" stage
for this question and can optimize eventually.

> > and controlled by someone else
> 
> If you solve the Public Suffix list problem, there are more people
> interested in how they can use that information :) Although again,
> draft-pwouters-powerbind comes close to offering that functionality.

So, at some philosophical level, the public Internet is "more important"
for IETF standards than private Intranets.  Yes, it would be nice if our
Internet protocols can be used elsewhere, but in lots of places we use as
criteria "benefit the public Internet", "not harmful to the public
Internet", etc..  It may seem that in a case where there is conflict
between the public Internet and the private enterprise Intranet (e.g., when
the same name is controlled by a different entity in the two locations)
that we the IETF are obligated to prefer the public Internet.  I'm not
generally a huge fan of trying to use one IETF protocol as a forcing
function for some other change we want to see, but sometimes it happens,
and "if you want TLSA in the enterprise you can't have it for random
namesquats that mean something else in public" may be a valid case.

Does the public suffic list necessarily come into play?  If I walk up the
hierarchy looking for the same DNS key in both views, then force the first
level of divergence to have some authorization for the private view, would
that work?

> > (since there will presumably be cases when internal names are not expected
> > to be visible in the public view at all).  I'm not coming up with a great
> > technical solution off the top of my head, though.  "Something in the public
> > DNS" might work, if you can forgive the incredibly vague idea.
> 
> That would mean publishing something about private domains in the public
> dns and worse publishing something in the parent zone about child zones,
> which would be next to impossible for second level domains.

Sure.  "Put it in the public DNS" is approximately the first easy thing
that came to mind.  What about my other proposal above?

> >> know how common this new behaviour would be and how reasonable it is
> >> for a client to understand what is happening. I cannot answer how common
> >> this would be other than stating in the past this wasn't possible at
> >> all. And that client understanding could be presented cleanly and I gave
> >> an example.
> >
> > I think it will be very common for users to "click through" without
> > actually looking at the list, with fairly high confidence.  I expect (but
> > at a lower level of confidence) that it will also be common for enterprises
> > to have lists of more than three domains in the internal view.
> 
> If you do not make this option available at all, then the only option
> for the enterprise VPN's are:
> 
> - Conveying this information hardcoded in installation profiles without
>    any user visibility or negotiation/rejection posibility

See my previous note about "local policy", which has no technical reason to
prohibit user visibility.

> - Demanding to just get all DNS traffic despite being a split-tunnel
>    VPN, at the expense of the user's privacy when doing DNS lookups for
>    things that are not supposed to go into the VPN tunnel. Possibly
>    requiring the user disables DNSSEC completely.

Yes, this is bad.

> Note also that the harm that can be done with realham.googleapps.com is
> basically the same as with any typosquat domain name, like me getting
> rhel.googleapps.co or realham-googleapps.com. I think that is not the
> real issue here. The issue is missing facebook.com, twitter.com or
> gmail.com in a long list of domains. And those would have a much higher
> chance of being seen as inappropriate.
> 
> If it helps we could limit the number of INTERNAL_DNS_DOMAIN payloads
> or INTERNAL_DNSSEC_TA payloads allowed to put an artificial cap on
> these lists. I personally don't think we should, but I wouldn't object
> to one either if it is not too low.

That doesn't seem like a great plan to me, either, though I suppose I could
live with it if it ends up being the consensus proposal.

-Ben

> 
> The reality is that using an Enterprise VPN means letting the
> enterprise control part of your machine. If the enterprise is malicious
> or incompetent, than there is nothing you can do as enduser. If
> anything, allowing this draft gives the VPN client a better chance to
> compartmentalize what it gives the Enterprise VPN. It is simply not
> different from the mandatory enterpise CA and/or anti-virus you have
> to install. If you think that risk is too high, you should not use the
> enterprise hardware for anything not related to the enterprise, and BYOD
> for personal matters.
> 
> To greatly reduce any abuse, the draft disallows any of these CFG
> payloads for those VPNs that are not split and take all traffic. If the
> VPN client is using its own validating resolver, the remote VPN cannot
> falsify any TLSA records. This covers the use case of all commercial VPN
> providers out there, some of which are pretty malicious.