Re: [art] Auto-configuring Email Clients via WebFinger

"John Levine" <johnl@taugh.com> Fri, 26 July 2019 14:32 UTC

Return-Path: <johnl@taugh.com>
X-Original-To: art@ietfa.amsl.com
Delivered-To: art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 447A7120114 for <art@ietfa.amsl.com>; Fri, 26 Jul 2019 07:32:26 -0700 (PDT)
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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1536-bit key) header.d=iecc.com header.b=vbRq6hKS; dkim=pass (1536-bit key) header.d=taugh.com header.b=mdh06Tmw
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 317lexpkgIP6 for <art@ietfa.amsl.com>; Fri, 26 Jul 2019 07:32:23 -0700 (PDT)
Received: from gal.iecc.com (gal.iecc.com [IPv6:2001:470:1f07:1126:0:43:6f73:7461]) (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 1237F12010E for <art@ietf.org>; Fri, 26 Jul 2019 07:32:06 -0700 (PDT)
Received: (qmail 66538 invoked from network); 26 Jul 2019 14:32:05 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=iecc.com; h=date:message-id:from:to:cc:subject:in-reply-to:references:mime-version:content-type:user-agent; s=103e7.5d3b0ee5.k1907; i=johnl-iecc.com@submit.iecc.com; bh=ioMIw92iZTASeKAuroYlmY00Io3Km+VB960Y39NboaI=; b=vbRq6hKSEupzoIdkoG8yMJzG5eMmAJKov+nfIz/l4OG/vEyO/+Ok6OaseiisdLSkQ59kltmknGZ5RiIu+uYXmUMd9BGhMFRHARNseLbpuBFQn2OaUNBMet7CxW/PljY4G7Huw18QTDGcoB2suIWNqpiI65XvX/2BSp5sp4ehbUOqmOvweh0fb1TP9oxSWZ705HVSxhS6Cdmgmyqetzrnuwo7J8Erh+4WGS1O/O6uEIo9TXPT9BaRJVCJGj1wHdax
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=taugh.com; h=date:message-id:from:to:cc:subject:in-reply-to:references:mime-version:content-type:user-agent; s=103e7.5d3b0ee5.k1907; olt=johnl-iecc.com@submit.iecc.com; bh=ioMIw92iZTASeKAuroYlmY00Io3Km+VB960Y39NboaI=; b=mdh06TmwFLF35SlJau0JTZ68ikCpzT83gg6wuNKdQ4JA0vZk/Sx3QAC7P4XSGClMFYLrx87RmzKKaO24R1Y6JSsZKG7Ms8yF0yBg1xXj56VuYGYk6nBJwMhzMzHRMP9njHIX22BNsMh9OjWP4tRiLB8gGBSAkzWRTo1WKDU6V9hV/Ou/Pj2BHNPJNLqxZLp+r92xg/H6Yry4KJAaxSBP5NkC7sne+T2BXzEsTYJurIiIVlCk+PYyQprW6xgKmU/m
Received: from [2001:67c:1232:144:c818:12b:9534:d44] ([IPv6:2001:67c:1232:144:c818:12b:9534:d44]) by imap.iecc.com ([IPv6:2001:470:1f07:1126::78:696d:6170]) with ESMTPSA (TLS1.2 ECDHE-RSA AES-256-GCM AEAD, johnl@iecc.com) via TCP6; 26 Jul 2019 14:32:04 -0000
Date: Fri, 26 Jul 2019 10:32:04 -0400
Message-ID: <alpine.OSX.2.21.99999.360.1907261023530.29761@dhcp-9b6c.meeting.ietf.org>
From: John Levine <johnl@taugh.com>
To: Dave Cridland <dave@cridland.net>
Cc: "Paul E. Jones" <paulej@packetizer.com>, "General Area Review Team (gen-art@ietf.org)" <art@ietf.org>
X-X-Sender: johnl@dhcp-9b6c.meeting.ietf.org
In-Reply-To: <CAKHUCzzuTaOscFjPCJz3oR_whUVdEnhpKBwsffKB5jX5yGDEdw@mail.gmail.com>
References: <CAKHUCzzS+k_DUwaBcvTH_68G4JS_6UHA=b6Ak49HuPVgta6zwg@mail.gmail.com> <20190720050445.925A852550A@ary.qy> <CAKHUCzwxTYbtV8vYyyzRtF_XfcX8KmfaSRjX3tsc1ZY_0eBR3g@mail.gmail.com> <alpine.BSF.2.21.9999.1907231225350.69540@gal.iecc.com> <CAKHUCzya4dZ5sdTxYvcC4n4Guo_AKU7E42iGC2vq05tUwZw38Q@mail.gmail.com> <emcdd0350d-c74e-4e88-9c5d-aa68b4128984@sydney> <CAKHUCzzuTaOscFjPCJz3oR_whUVdEnhpKBwsffKB5jX5yGDEdw@mail.gmail.com>
User-Agent: Alpine 2.21.99999 (OSX 360 2019-07-19)
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"; format="flowed"
Archived-At: <https://mailarchive.ietf.org/arch/msg/art/OW68H2PwtFU3bk7nNr1OFJX_AGg>
Subject: Re: [art] Auto-configuring Email Clients via WebFinger
X-BeenThere: art@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Applications and Real-Time Area Discussion <art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/art>, <mailto:art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/art/>
List-Post: <mailto:art@ietf.org>
List-Help: <mailto:art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/art>, <mailto:art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 26 Jul 2019 14:32:26 -0000

I think we agree more than we disagree.  I totally agree that only 
one-time setup when you add a new account to your MUA makes sense, not 
every time it starts up.

But in this application I still don't see the benefit of an extra level of 
indirection via SRV.  Whether we start with ACAP or (more likely) with the 
Mozilla XML format, you've already got the indirection.  Large mail 
systems like Gmail and Hotmail/Outlook get redundancy now via multiple A 
and AAAA records.

R's,
John

On Thu, 25 Jul 2019, Dave Cridland wrote:

> 
> 
> On Thu, 25 Jul 2019 at 05:09, Paul E. Jones <paulej@packetizer.com> wrote:
>       Dave,
>
>       We could bake that functionality into the autoconfig fomat, of course, but
>       it feels like refreshing the config can happen at a different cadence to a
>       SRV lookup, and besides, SRV works well.
> 
> 
> It works well for the simplest use case, but SRV records are really limited. I can name
> a three things SRV records cannot do today that are effectively render it useless for
> me:
> 
> 1) It cannot tell the MUA the login ID to use (which may or may not be the email
> address) [or what credential mechanism to use]
> 
> 2) It cannot specify (if I recall) that TLS must be used per corporate policy [this is
> important since both IMAP and mail submission generally offer STARTTLS as an option]
> 
> 3) It doesn't allow specifying different servers for different users
> 
> 
> And to re-iterate, I'm not suggesting we should forgo any kind of autoconfiguration format in
> favour of SRV; I'm suggesting that having the autoconfiguration format specify servers in the
> form of SRV would be useful.
> 
> That said, (2) is irrelevant on two counts :
> 
> a) You can use `imaps` SRV records just fine. They're published for gmail.com, go have a look.
> 
> b) You can require TLS via STARTTLS within the protocols, and you'd have to anyway,
> irrespective of what any autoconfiguration stipulated. Would you consider stipulating a policy
> in an autoconfiguration file but not enforce it in the services?
> 
> I shall now reiterate the arguments in favour of using SRV in this way, because it seems I've
> not be clear enough.
> 
> First, some background:
> 
> I have written both email servers and an MUA, and for the latter, I wrote a complete ACAP
> server to support autoconfiguration. ACAP is effectively dead, but the experience has left me
> with some practical experience of how to write autoconfiguration support in an MUA, and - more
> importantly - some idea of how one might retrofit that support into an existing MUA.
> 
> The fact is that existing MUAs often have plenty of support for an autoconfiguration step, but
> it exists during setup. So you can easily specify authentication identifiers and so on at this
> point, but if the autoconfiguration source changes, you're out of luck. This is unsurprising,
> since with IMAP at least, a decent MUA has to do quite substantial effort on first connect
> anyway in order to make decisions on the remote server's mailbox layout. It might change with
> JMAP, but all existing MUAs are currently IMAP-based, so in order to gain market traction, we
> need to aim for this "auto setup" model.
> 
> The UX we're expecting is that, during Setup and "Add New Account", the user enters an email
> address, and specifies credentials, and they're done - the MUA will then autoconfigure the new
> account. There's lots of useful information that can be sourced here from an autoconfiguration
> service. Does the service support subaddressing? Is the authentication for the submission
> service the same as the authentication for the IMAP service (so, can I share credentials?).
> All of this is useful and vital information, and I'm not going to advocate scrapping it
> (instead, though, please do look at the ACAP dataset definitions for some thoughts and ideas -
> Randy Gellens put a lot of good work into those).
> 
> During connection, there is more discovery. This includes locating the hosts via DNS,
> discovering what TLS support is available, discovering what authentication mechanisms are
> supported, and so on. There are pages of RFCs already in existence for how these different
> processes work, and much of it we - in the app layer - don't care about, because it's taken
> care of by DNS libraries, TLS libraries, and SASL.
> 
> However, this second phase is routinely done - sometimes from scratch - every time a
> connection is made. It's here I'm suggesting that existing clients could easily be made to use
> SRV (with A/AAA fallback), and gain some useful resilience, since this resolution occurs on
> every connection, and not just on service configuration. Thanks to a lot of time spent in the
> XMPP space (where most clients fully autoconfigure off the Jid), I'm familiar with the
> benefits of SRV, and how easy or hard it is to do on most platforms (these days, very easy,
> and with added DNSSEC, DTLS, and/or DOH).
> 
> There's also final part of discovery for an MUA. Here, after connection and authentication, an
> MUA looks at server layout, features, and so on. It will examine the mailbox layout. Is there
> a specific Drafts folder? What does NAMESPACE return? Is BURL supported on the submission
> server? While these are all, in principle, subject to change, doing so will deeply confuse
> many MUAs, so it's best to consider these a one-off setup. It is, I think, this that means
> that the pragmatic aim for this is to assume that whatever we choose to design, the protocol
> will mostly be used for "auto setup", and not a more continuous "auto configuration". Perhaps
> something else is the forcing factor though - in any event, auto configuration sources are
> used as one-off procedures during setup and not on as a part of connection, startup, etc.
> 
> I hope this is clearer.
> 
> Dave.
> 
>