Re: [ietf-smtp] Email explained from first principles

Bron Gondwana <brong@fastmailteam.com> Mon, 17 May 2021 01:33 UTC

Return-Path: <brong@fastmailteam.com>
X-Original-To: ietf-smtp@ietfa.amsl.com
Delivered-To: ietf-smtp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 24FA03A2112 for <ietf-smtp@ietfa.amsl.com>; Sun, 16 May 2021 18:33:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=oL0PHsMV; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=Ve0yS3po
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 4FU_zsdsnyHU for <ietf-smtp@ietfa.amsl.com>; Sun, 16 May 2021 18:33:44 -0700 (PDT)
Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 76D113A210F for <ietf-smtp@ietf.org>; Sun, 16 May 2021 18:33:44 -0700 (PDT)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 27D005C0085; Sun, 16 May 2021 21:33:42 -0400 (EDT)
Received: from imap43 ([10.202.2.93]) by compute2.internal (MEProxy); Sun, 16 May 2021 21:33:42 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=mime-version:message-id:in-reply-to :references:date:from:to:cc:subject:content-type; s=fm2; bh=QGmL sXXqP77joFR+vYqBEpFqSrPA7jbPrYYNLqe2Cnw=; b=oL0PHsMVsvfGTrb5VJ8e +LAdv1SersMP6YJZjIIH6dS93oNkxV3M2ciKNtl2dW4KrpzkN+yrEhk4ndcAB9zr 2Zv4F1zq5pl9g6xy8ojwy1YieUQ598x3nwe0J0eowzaIn6sEVoZ4T45zJvcc2VRX nxpf1URi/qR4KffJ2C1YlTQyypujIOI4tbWX2ivACV74dHq4g1oBFuVECPz/3Vtr JAjsqmotIc/oznxvcARxkPONgZktsw/5+cibDNGxlXjtCPZk5kYR9oKzcmugBZ4j i5GY6IUze535BZqUog+bc30EBP2yDE4Z5RHR3yp07HuH5qdeKnGBsmcZkhBv0L/8 eA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=QGmLsX XqP77joFR+vYqBEpFqSrPA7jbPrYYNLqe2Cnw=; b=Ve0yS3podhkZqcpewibJwi OvrxYEJFqhQWW366iPloSiZSbOMDzFk+UlgcLjUsVqRrAD2BG8IYORFGB0tmPmcw fViVj5dBaCoHYqJBv0M8GxjRTrwmNJs194E8JPEcmiiXeLV/08gXmx5Ek9gHQ/O/ OPRcQ3PPWTABbhGt5ovKqj/xVDkPlcFoXrCLh0eD0wWpxAQe+uWhuj39uyvtlzEf be9IWZZe1pP5RMlRz26WCLZYCfxa+hQqqUwWbNS74hZwxWdM61URL88QOBZjeujG MK/whxEQxA2cLcewQ0jSQ9nGoJyFoTxf2DhzszjWM10hheqoz1bCQMwKBwg2SVZw ==
X-ME-Sender: <xms:9cehYIgKCi7ftoLKJUAlhyEwToLmxdEeUGxeC0Bh-bSKfnngNHioDQ> <xme:9cehYBDIEo1AuUiq_-BYBgtvp_k_e2x2gRE-QR8MUKg9iGzQ0zRw_Na4eLMxUbMxf ts4VALcTHE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrvdeigedggeejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfgjfhffhffvufgtsegrtd erreerredtnecuhfhrohhmpedfuehrohhnucfiohhnugifrghnrgdfuceosghrohhnghes fhgrshhtmhgrihhlthgvrghmrdgtohhmqeenucggtffrrghtthgvrhhnpeefhefhgefhgf evgeejfeelgfeijeffheduhfefhffhkeehgeelveefieffgefhtdenucffohhmrghinhep vgigphhlrghinhgvugdqfhhrohhmqdhfihhrshhtqdhprhhinhgtihhplhgvshdrtghomh dprhhftgdqvgguihhtohhrrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghr rghmpehmrghilhhfrhhomhepsghrohhnghesfhgrshhtmhgrihhlthgvrghmrdgtohhm
X-ME-Proxy: <xmx:9cehYAHn3TY9ghn9WwHd_LfP5CiDRDttn7IeT-Ko0h3IFKRM7KjvxQ> <xmx:9cehYJSt1dG3MZQ5ZQwT2a68hSnjvIv3FMu6V64vogsonyJsAUCdTg> <xmx:9cehYFykoeqTYYEVkP-Yna0nWfCks8Zvf-qUHUP-BIrqDZyligA3yA> <xmx:9sehYOvswSNNDqxfSaxiDLXTmLoeN22ZgFAXvQ0IoArGtQ79qhm-FA>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id B356818005D; Sun, 16 May 2021 21:33:41 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.5.0-alpha0-679-gd95ae7bd09-fm-ubox-20210510.002-gd95ae7bd
Mime-Version: 1.0
Message-Id: <8358a3fa-29dd-4fa6-83ea-3be8bfa6cdb3@beta.fastmail.com>
In-Reply-To: <799F767A-9075-471A-AD1F-A6CFE9611B8F@ef1p.com>
References: <799F767A-9075-471A-AD1F-A6CFE9611B8F@ef1p.com>
Date: Mon, 17 May 2021 11:33:20 +1000
From: Bron Gondwana <brong@fastmailteam.com>
To: ietf-smtp@ietf.org
Cc: kaspar@ef1p.com
Content-Type: multipart/alternative; boundary="05c8b16763e64f34b978863450a6da91"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf-smtp/rKfK97LSoV7kYQFIX2Lku7oI9aE>
Subject: Re: [ietf-smtp] Email explained from first principles
X-BeenThere: ietf-smtp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discussion of issues related to Simple Mail Transfer Protocol \(SMTP\) \[RFC 821, RFC 2821, RFC 5321\]" <ietf-smtp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf-smtp>, <mailto:ietf-smtp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf-smtp/>
List-Post: <mailto:ietf-smtp@ietf.org>
List-Help: <mailto:ietf-smtp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf-smtp>, <mailto:ietf-smtp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 17 May 2021 01:33:50 -0000

On Fri, May 14, 2021, at 23:27, Kaspar Etter wrote:
> Dear IETF community,
> 
> I spent several months researching and summarizing all aspects of modern email in an attempt to make the email standards more accessible to a wider audience. You find the result of my work at https://explained-from-first-principles.com/email/.
> 
> I'm interested in your feedback and criticism: Did I get anything wrong? Is an important aspect still missing?

Thanks Kaspar,

It's clear you've put a lot of work into putting this together.  Unfortunately I don't have time right now to do it justice and review the whole thing!  I'm not sure that anyone else is likely to either.  This is one of the ongoing challenges for any work, it's more interesting to do the work than to review it!

But that actually raises the more interesting question out of all of this.  Are you interested in engaging with the IETF community and helping to progress your ideas within the IETF?  Because that's going to involve the messiness of human interaction and building relationships so that people make the time to review your work because they know you will return the favour when they need reviews

> Besides summarizing more than a 100 RFCs, my article contains many suggestions for how existing standards could be improved. This mailing list is probably not the right place to discuss them, but I would still like to point out a few of them:
> 
> 1. I made a security analysis of SCRAM and provided several suggestions for how its security could be improved even further: https://explained-from-first-principles.com/email/#desirable-properties-of-authentication-mechanisms and https://explained-from-first-principles.com/email/#salted-challenge-response-authentication-mechanism

I wonder if you'd be interested in the work happening in the GNAP working group.

> 2. SMTP for Submission should make it clear that the IP address of the submitter SHOULD NOT be included in the Received header field. In my view, the current practice of many email service providers violates the European General Data Protection Regulation (GDPR): https://explained-from-first-principles.com/email/#sender-towards-recipients

This is an interesting question.  Are you entitled to such privacy from the recipient?  If so, on what basis?  This kind of thing is very much a tradeoff of various concerns, and by removing your IP address, the server to which you are making the submission is taking on additional responsibility for the content of your message.

> 3. This ship sailed a long time ago, but remote content violates three fundamental principles of email and should thus never have been supported by mail clients. At the very least, subresource integrity (SRI) should be introduced and be required for all remote content: https://explained-from-first-principles.com/email/#remote-content

I strongly agree with you on this one :)   Immutable content and completeness are a big deal to me.  It's somewhat solveable by clients fetching the content and caching it immediately - or servers doing the same and rewriting the links.

But upgrading from where we are to there is a big project - who's going to do the work?  Both in defining something better, and persuading the world to move to it.  These are both hard problems, because the something better needs to be persuasive.

> 4. HTML emails are broken. Mail clients struggle to quote them securely, and the same message can appear differently to different recipients: https://explained-from-first-principles.com/email/#quoting-html-messages and https://explained-from-first-principles.com/email/#different-appearances

Oh yeah, HTML is a horrible choice for this.  But, like democracy, it's better than all the alternatives!  Defining a subset and getting people to use it would be great, but see my response to 3.  How do you sell this to all the involved parties and have an upgrade path which doesn't lead to all multipart emails having 3 parts, text/plain, text/html and text/the-better-one ?

> 5. To fix the problem of different appearances for different recipients, a profile of CSS which ensures that content cannot be hidden should be specified and then implemented by all mail clients: https://explained-from-first-principles.com/email/#hide-content-with-css

See previous.

> 6. Are SPF verifiers supposed to follow CNAME records and if so, do they count towards the lookup limit? I couldn't find an answer in the RFC. In my opinion, resolving CNAME records during SPF validation is undesirable for security reasons: https://explained-from-first-principles.com/email/#protecting-subdomains

As with anything where it's not really clear, the only safe assumption is to assume the least favourable to you of all possibilities, so - don't use CNAME records and if you do, they'll be counted towards the lookup limit!  Which I see you've already mentioned.

> 7. I don't understand why Authenticated Received Chain (ARC) is necessary or even desirable: https://explained-from-first-principles.com/email/#authenticated-received-chain

It's an attempt to solve the mailing list problem and the forwarder problem.  At least for pure forwarding the simple solution is to keep the bytes intact so that DKIM still passes, but for messages without DKIM it will at least maintain some integrity tracking on the SPF check that was done when it entered ARC-supporting servers.

I have written a bit on this, and I do feel that having an additional DMARC policy of reject-unless-arc-trusted is necessary for the intermediate to know whether the far end will reject - but the problem is that there's no clean bootstrap path either way, because you fail either too open or too closed.  The intermediate doesn't know if it needs to address-rewrite anyway to make sure the mail gets through.

Note for example that this email is listed as being:

From: Kaspar Etter <kaspar=40ef1p.com@dmarc.ietf.org>

Because the IETF list has to rewrite due to your domain's policy.

> 8. It's rather complicated in which cases DANE applies to ESMTP. I hope I got all the cases right: https://explained-from-first-principles.com/email/#name-matching
> 
> 9. RFC 8461 states explicitly that MTA-STS may not override a failed DANE validation. As far as I can tell, it isn't specified anywhere whether DANE may override a failed MTA-STS validation. In my opinion, this would be desirable because it would allow domain owners to configure transport security without the support of their email service provider: https://explained-from-first-principles.com/email/#coexistence-with-dane

I'm not an expert in this area so I won't try to respond to these two.

> As a feedback from my side to the IETF community: 6 out of the 8 errata which I reported are still not "resolved" (see https://www.rfc-editor.org/errata_search.php?submitter_name=Kaspar+Etter). I hope the errata process is revised rather sooner than later.

There's a discussion in the IETF generally about how to deal with the backlog of errata.  Again as I mentioned right up the top - getting people to do the boring grunt work of reading others' work and providing insightful feedback is tricky!  Finding time to process things is tricky.

Clearly you've found an enormous amount of time to put all this together, and it's really excellent work.  It feels like the kind of thing that you should be getting academic credit for, to the extend of being a published paper, at least to the "Honours Degree" level - it's carefully researched and meticulous.

I hope you have the time and the willingness to engage with the IETF community as a contributor and to work within the ebb-and-flow of human relationships to progress some of your ideas and your work further.  We could do with the energy that you're bringing - it's just a lot to bite off so much all in one go!

Cheers,

Bron.

--
  Bron Gondwana, CEO, Fastmail Pty Ltd
  brong@fastmailteam.com