Re: [DNSOP] Favor: Weigh in on draft-ietf-ipsecme-split-dns?

Paul Wouters <paul@nohats.ca> Fri, 30 November 2018 17:30 UTC

Return-Path: <paul@nohats.ca>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AB62B130E82; Fri, 30 Nov 2018 09:30:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nohats.ca
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 8AGLBrpVeBU9; Fri, 30 Nov 2018 09:30:14 -0800 (PST)
Received: from mx.nohats.ca (mx.nohats.ca [193.110.157.68]) (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 7CA21130E58; Fri, 30 Nov 2018 09:30:14 -0800 (PST)
Received: from localhost (localhost [IPv6:::1]) by mx.nohats.ca (Postfix) with ESMTP id 4361cL69NCz6w; Fri, 30 Nov 2018 18:30:10 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nohats.ca; s=default; t=1543599010; bh=ZZedaaCIoiL6o9eV8aMzBduq4L9/PVeL9LZHZcfcHTY=; h=Date:From:To:cc:Subject:In-Reply-To:References; b=pfmtGnqX7nS81eJ3/Z6R6DM8CKBlxg2Rc3ZAN98wevK9bvu9UHQ+X9t9Q0BFdUSPg 3ZTYzVbOxcS5dGIYHc3BEusoMjRZvOrGWsB3WSptW43D+2LvL+45qMXJ2mh7VCoBec /FQUS2XcZITSwa95VLnkPnjJOHhXbOVQEAZrMkhk=
X-Virus-Scanned: amavisd-new at mx.nohats.ca
Received: from mx.nohats.ca ([IPv6:::1]) by localhost (mx.nohats.ca [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id US6ZV22TdlKd; Fri, 30 Nov 2018 18:30:08 +0100 (CET)
Received: from bofh.nohats.ca (bofh.nohats.ca [76.10.157.69]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx.nohats.ca (Postfix) with ESMTPS; Fri, 30 Nov 2018 18:30:07 +0100 (CET)
Received: by bofh.nohats.ca (Postfix, from userid 1000) id EF4644A2C9E; Fri, 30 Nov 2018 12:30:06 -0500 (EST)
DKIM-Filter: OpenDKIM Filter v2.11.0 bofh.nohats.ca EF4644A2C9E
Received: from localhost (localhost [127.0.0.1]) by bofh.nohats.ca (Postfix) with ESMTP id D7D4041C3B31; Fri, 30 Nov 2018 12:30:06 -0500 (EST)
Date: Fri, 30 Nov 2018 12:30:06 -0500
From: Paul Wouters <paul@nohats.ca>
To: Ted Lemon <mellon@fugue.com>
cc: draft-ietf-ipsecme-split-dns.all@ietf.org, Tony Finch <dot@dotat.at>, dnsop WG <dnsop@ietf.org>, Tero Kivinen <kivinen@iki.fi>, Joe Abley <jabley@hopcount.ca>
In-Reply-To: <CAPt1N1=Q=EKPGN0DMDLwHxRoSqRs76VUMufWMEexqVHAeA9Wwg@mail.gmail.com>
Message-ID: <alpine.LRH.2.21.1811301223180.535@bofh.nohats.ca>
References: <CAHw9_iL6CpLf6h_ysWEjvNjzaU2TPk-SyVGzLs_J9Yk_5A4OmA@mail.gmail.com> <46B41554-ABC0-4939-99E3-703E1FD998D5@hopcount.ca> <alpine.DEB.2.20.1811261658250.3596@grey.csi.cam.ac.uk> <23550.37961.117514.513410@fireball.acr.fi> <CAHw9_iJ0XFzErwbUci_WmN1pzZHbapj2JNu4j2YbMFbBt-m+aw@mail.gmail.com> <CAPt1N1m2upV2yJsFVyac6n-_MzFsv_g_fMaYP_UueTFR_3OPCA@mail.gmail.com> <1FBDB971-A632-4E32-A6CF-D422BBF6F8D3@nohats.ca> <CAPt1N1nK=QurJGdoKhJfg6BV6yUn9dtWZBZDfE+PGDmm2SAdvw@mail.gmail.com> <alpine.LRH.2.21.1811301042420.22612@bofh.nohats.ca> <CAPt1N1=Q=EKPGN0DMDLwHxRoSqRs76VUMufWMEexqVHAeA9Wwg@mail.gmail.com>
User-Agent: Alpine 2.21 (LRH 202 2017-01-01)
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/EFj3KU374xCKFa-ng6QEBUIwnGg>
Subject: Re: [DNSOP] Favor: Weigh in on draft-ietf-ipsecme-split-dns?
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 30 Nov 2018 17:30:17 -0000

On Fri, 30 Nov 2018, Ted Lemon wrote:

> Separately, on the topic of provisioning, the right answer here is to just say that the whitelist is installed with the provisioning profile, and not recommend a UI flow.   It's the recommendation for the UI
> flow that I'm objecting to.

There is no "recommendation". There is a MAY clause:

    To determine this, an
    implementation MAY interactively ask the user when a VPN profile is
    installed or activated to confirm this.  Alternatively, it MAY
    provide a special override keyword in its provisioning configuration
    to ensure non-interactive agreement can be achieved only by the party
    provisioning the VPN client, who presumbly is a trusted entity by the
    end-user.

It seems our views differ here, which I would say is covered by the MAY
not being a SHOULD/MUST or RECOMMEND.

> This is a bad security practice that is slowly falling into disfavor.   I admit I'm ahead of the curve on this, but the writing is on the wall, and again, I'm not asking for
> ponies here.

I disagree and find your reasoning a little conflicting. Your proposal
is to always leave the user uninformed, ensuring that all users might
not be aware of anything. This gives individuals who would recognise
"do you agree to whitelist gmail.com" for VPN provider Cheap Access Inc
no more notification to stop installing the provisioning changes.

I explained big company's like Apple already do this when installing a
Root CA as part of a provisioning step, and it seems logical to do the
same for DNSSEC based trust anchors as we do for WebPKI based trust
anchors.

> I agree that if you are going to use the whitelist method, you need to install it somehow.

I am glad we agree there :)

> I do not agree that you need to advise implementors to do something which, while presently common,
> is actually a bad practice.

I hope my explanation above about not recommending it but not forbidding
it either is good enough for both of us.

Paul

> On Fri, Nov 30, 2018 at 10:53 AM Paul Wouters <paul@nohats.ca> wrote:
>       On Thu, 29 Nov 2018, Ted Lemon wrote:
>
>       > On Thu, Nov 29, 2018 at 12:31 AM Paul Wouters <paul@nohats.ca> wrote:
>       >       How could the use case be more constrained without breaking functionality?
>       >
>       > I discussed this in detail in several previous posts, e.g.:
>
>       > https://mailarchive.ietf.org/arch/msg/dnsop/97xk8Zm1NGpyadZ8lsL3MhRtYGk
>       > https://mailarchive.ietf.org/arch/msg/dnsop/hkRowALa5yT4IoSmqCpdZg4e78I
>
>       Well, you argued for changing things so much that it breaks
>       functionality :) And you would require the VPN client to have
>       some kind of DNSSEC resolving capability before the tunnel is
>       setup. And if those checks need to be done during tunnel setup
>       then there is also a significant delay that would affect on-demand
>       tunnels.
>
>       I especially disagree with your text:
>
>               I think that we should let the field tell us before figuring out how to solve that problem.
>
>       > I explained this in the previous posts.   I would be happy (really!) to help improve the text, but it would be a significant change, and I'm getting the impression from
>       > Warren that he would like to not do that..
>
>       More specifically, the enterprise use case should not be further changed
>       to a more manual problem. In our previous discussions, both with the list
>       and the Security AD, we made it clear that this is as far as we can go
>       without destroying the enterprise use case. That is, let the provisioning
>       provide the list of names for override, give software a chance to warn,
>       and treat it otherwise as trusted enterprise provisioning. It is up to
>       the implementations on how or where they would support internal trust
>       anchors. For example a phone OS could limit this via "enterprise managed"
>       phone modes only and not allow "emailed profiles" to have these trust
>       points.
>
>       >> Have you ever installed a Configuration Profile on iOS device? If your profile contains a VPN profile which contains a PkCS12 it will warn (entity installing this
>       >> can monitor all your traffic) and show you the root CA.
>       >
>       > Yes.   That's a very bad UI flow.   It means that I can just hand you a configuration profile to install, and you can install it easily.   And you will install it—you're
>       > installing it because you want to get something, and when you're presented with "ok" or "cancel," it's going to be very clear to you that "ok" will get you whatever it
>       > is that you want, and "cancel" will not get you what you want.   So even offering the user this choice has created a gigantic attack surface..   I think of UIs like this
>       > as "social engineering enablement UIs."
>
>       Well, this is where rubber meets the road. There is nothing I can come
>       up with that will be rejected by the people who want to see dancing
>       hamsters or playful kittens. An enterprise can hand out phones that
>       are restricted with respect to provisioning and they can control it
>       as they see fit. If such an enterprise wants to support BYOD, they
>       can choose to forbid these trust anchors on those phones and/or
>       limit those VPN connections in other ways.
>
>       If you let random internet companies install profiles with various
>       kinds of super powers, no RFC in the world will stop them.
>
>       Paul
> 
> 
>
>       >  
>       >       The idea of the text is that this can be similarly done and warning you about the domains whitelisted. That would help if it suddenly lists gmail.com or
>       >       yahoo.com. I believe this adds value and is better than not presenting the whitelist. Ignorant users will just click click click regardless and knowledgeable
>       >       users can go “wait a minute”
>       >
>       >
>       > I assume that knowledgable users will do the right thing if given the right information; often these dialogs do not actually give the right information.   But it's the
>       > ignorant users I actually care about, because there are probably three or four orders of magnitude more of them.   As a knowledgable user, UIs like this actually create
>       > a lot of stress for me, because they never actually tell me what they're going to do, and yet I know that if they are doing something other than what I hope they are
>       > doing, clicking "yes" will create a new attack surface on my device.   So I usually click "no," even though it's probably okay to click "yes."   If we want devices to be
>       > more secure, we have to come up with UI flows that get the user what they need without forcing them to choose between "win and get hacked" and "lose and don't get
>       > hacked."
>       >
>       >
> 
> 
>