Re: [Uta] Benjamin Kaduk's Discuss on draft-ietf-uta-smtp-require-tls-07: (with DISCUSS and COMMENT)

Benjamin Kaduk <kaduk@mit.edu> Mon, 11 March 2019 14:44 UTC

Return-Path: <kaduk@mit.edu>
X-Original-To: uta@ietfa.amsl.com
Delivered-To: uta@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BD6E0131083; Mon, 11 Mar 2019 07:44:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 hMLs7TE78PzL; Mon, 11 Mar 2019 07:44:04 -0700 (PDT)
Received: from NAM05-BY2-obe.outbound.protection.outlook.com (mail-eopbgr710134.outbound.protection.outlook.com [40.107.71.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D29351310FB; Mon, 11 Mar 2019 07:43:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j7PbBHS2pa/F3w3rfCTlTlEw70cSxI0oJgmlxk/zKTE=; b=xVnrPphY4NDxZ6Ynpx9e2VIy5UUXYCq0FCjmq8I3Ci1Uk+PNrydRRZK1kd6pPHMN9MBfcCF4B5SD6IwDWmQkUc1UFc7bOwN/sX8wC2nO4KVNDxpPqQRPKfidCoiSwo3fSufTZN8W42oHjCX8SNFERqswjOcxiD+Xd++zJldpTNk=
Received: from SN2PR01CA0027.prod.exchangelabs.com (2603:10b6:804:2::37) by CY1PR01MB2011.prod.exchangelabs.com (2a01:111:e400:c60e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1686.20; Mon, 11 Mar 2019 14:43:49 +0000
Received: from CO1NAM03FT048.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e48::208) by SN2PR01CA0027.outlook.office365.com (2603:10b6:804:2::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1686.18 via Frontend Transport; Mon, 11 Mar 2019 14:43:49 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by CO1NAM03FT048.mail.protection.outlook.com (10.152.81.49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1686.19 via Frontend Transport; Mon, 11 Mar 2019 14:43:48 +0000
Received: from kduck.mit.edu (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.14.7/8.12.4) with ESMTP id x2BEhhbc024647 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 11 Mar 2019 10:43:46 -0400
Date: Mon, 11 Mar 2019 09:43:42 -0500
From: Benjamin Kaduk <kaduk@mit.edu>
To: Jim Fenton <fenton@bluepopcorn.net>
CC: uta@ietf.org, uta-chairs@ietf.org, valery@smyslov.net, draft-ietf-uta-smtp-require-tls@ietf.org, The IESG <iesg@ietf.org>
Message-ID: <20190311144342.GR8182@kduck.mit.edu>
References: <155072491254.20210.15187912705241578950.idtracker@ietfa.amsl.com> <7061cefb-0f2d-5257-e10c-95be14a7413f@bluepopcorn.net> <20190227201137.GS53396@kduck.mit.edu> <f939d44f-1262-ca40-4501-755ed05e4674@bluepopcorn.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <f939d44f-1262-ca40-4501-755ed05e4674@bluepopcorn.net>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(346002)(376002)(396003)(136003)(39860400002)(2980300002)(189003)(199004)(104016004)(33656002)(30864003)(8676002)(47776003)(55016002)(426003)(246002)(6666004)(66574012)(356004)(1076003)(46406003)(53416004)(23726003)(14444005)(7696005)(97756001)(6306002)(305945005)(50466002)(106466001)(76176011)(316002)(786003)(476003)(126002)(36906005)(956004)(229853002)(58126008)(54906003)(11346002)(16586007)(446003)(93886005)(75432002)(86362001)(8936002)(2906002)(4326008)(966005)(336012)(26826003)(478600001)(6246003)(106002)(53546011)(5660300002)(486006)(6916009)(186003)(88552002)(26005); DIR:OUT; SFP:1102; SCL:1; SRVR:CY1PR01MB2011; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; MX:1; A:1;
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8ba1756a-72e4-43a7-fcc6-08d6a62ff946
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4608103)(4709054)(2017052603328)(7153060); SRVR:CY1PR01MB2011;
X-MS-TrafficTypeDiagnostic: CY1PR01MB2011:
X-MS-Exchange-PUrlCount: 1
X-Microsoft-Exchange-Diagnostics: 1; CY1PR01MB2011; 20:jZtIgaW0vv8+e+KDnkLaLTxJ/4j8S68IvjqXa1ekuhVwTrlhjJr8y30zFL5zAoNONx0mXMnPNaBLcK24CsyjKSIfCk+xIwdO6x8tIK6OlD4ZS6O5hV955iHSglpgcHBOFqOun9Le13vkBQOzO1OEVkGe9WcWX3WVB9noIbVQWMcX7i26nuXIFhCGUyRK2hqIm6vViVHQVq1UqKUXHaaF/PjXctzJiM1ewx626FXAQrBhIUfJdK/+hhHtycrFNsRc7ugr87IEI+ggdSrCq6a7wZgnNrC+dIb1nsRNttAjmnYvFROVU59v4A4FE2RLbTjZk7ApYfRreXwqdB48Z3PNawBqB65wwRzgPtXrGyF3Yw8UVVzt7EMplVZoPHMrxqSQaBT6of0KTEcX5eHsWmIkFZKJojX0zi3LC+ycvjsX5LdL8RpfocJbCaeCuWZUMRCgEo0D4eAUKXmTcsTY2ivOGfVAt5Jw0RHGC+cwhJ8NUxL1j3IzjkV+ke6I2r6Qrg5Go6WR53uat+VsbWirRNOXCq+9NTrrEkg9zFdAwvSD2X/MAfhg/QQdbRyCnwUPaelVU/h2ZZx1XyUJAm+vmG0MQCUNr/92fhZnJNuSvWS7uKY=
X-Microsoft-Antispam-PRVS: <CY1PR01MB2011215F900AC69D25CE141DA0480@CY1PR01MB2011.prod.exchangelabs.com>
X-Forefront-PRVS: 09730BD177
X-Microsoft-Exchange-Diagnostics: 1; CY1PR01MB2011; 23:xvDe97IDGaln+zEB3wLNZj9ZE2UzRLTwQX13i1asYLrkWZVv9lrjwQO037gv7ODEzaGCZBpHYt5lQvfW0owLBeKG0t32IYSKhP35kY8dIM0U4heCuMsUe4cx37hWrgzoJXxH6lPNSeC4Mp1a0cLsoW+AGG/PFKlHzkA0yCPvd2x09qEIEfgL3EgvWXejrcFS/V/mowtE73ZQmZXzwNbZhwchs0j8SfCQpyXwCC0qg+KZnaCFa5DJ56o8P2GIxyoTALRMwy1n2/+rRw7EE2+6rcTO4e1BMfDnu3EYQsilEteJxzSNj81yNWVux3DNj/Amsj3Cwm8Ox3uGqwJhe8WMcNBgkHwzlflqaASH37mw4XFu2fjD2VOaS7r4McgUE4/oScERwMRBd423rbTOuHI0chiSK7ZDFX/Y5WKmtEUTbfbF2Xq2NUG0gzI2lkWeb9jQz1QQNmRcQkmQq2UXQ2eTVHjkJcKftN+Z6bL6l23krG7k3VtUvEVjbWTHRCkyXt2OF5J/nTfoZVcU9/Wpjob+aD6GVD6x9JK9h9Ebly4Bh2yLOWch/hWLVyOF80sPUWLU7hcuRB+Z94JTurKu/R0k4/TVngGh3uZICp7oqEPhUQ0CeO6NoSi6F+UKjxxo6JX5/VLe+ZjiRZzk7AohQ3TFfnMGG+p0fNzkQttVVOcbnGCXfEIZIxxGL4MFd8V+1gAKbZJy2ezK50avJ/4sa8J9M7eB5PKAEqj3NANxjSOonxg/HmpwIDTc1LKXTKxZC3ta4XiZ5A5n/Uou8uUFy0v9j3iIw9gD/oe2cvIRlVt/sZHu+zbyyGyMCMTamvpAzOUiTlcOY/qHTJ8CpTBikkGAuIUb882Il00x8Uh8b+3Jx0J+GAThDxt36Y4a+1/e8jzpfXqjqEd1MHwDwvXzIxRnXJCvMkLHraBYFQKb0E7ZvKsNdRrRfZF1bskRFksau0poVLkXeGiFlsLE7PTlARGLvsPzC7iKzCo0pqQEp0uXyW2IJAKIRfj1qVjhTNBRMT6Zkofa3PTwESDiesJg1m7/jtCRqM8VxrUhULPQrNhPsQ/OxrFq6/7+oU20pgX9N5FCPvAlknUktJE/OUE6bihVrOCeliuTcn2IsH4XyI38y1z16VyGOJq9bexXuCyc7Nrc2QK+yEx1nck5MG/bGjWa0z3+VaI7BTRTKmSm8CeOE1R2seu7gElJYlQp0dUb28Qxn7l1vJIADoOdJkqBB8UfD9rP3YDykGZ1bdDfKFn6fyXywvFMcEBQTagMJi1ntvw+V82HcYbsLalfR6bG1PMXFwzvodA4ZQalLbKE25lrE/icUEr7SYTAOkaUS1DK8K8l
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: s9L1AeBdI6QCa6h8FcFbHUNGLm3qJ+2kmf0yT5xfSFC7wdrTvqghfjvT73NojRE25Nh4B5yUAJjNrAiBdAynguAWflvsQYZUMf34+dyHWPWNNOsQ89ZqTgPFxF69jhufHJKi04tSPEFyJwka49TJXr44fpbHVBqnHLY8G/oj+LPuz3e3S2BQF7DIo+LlBiBXhsjTS302Fq7Oh++Q61eadn8L6K22StodTLRXsUcoxqeNaQHV17maNNqbHkl+ZqT/N/Qe1cygTi75m2WH6Kg6yiyJV3eUjL6LgfvQTykwsBAMVouD/p0vgYxmdLbNVuUhuGFx3aYtpj06IgiVvk1YHjw225NK9C0uwu2O07h+XRpsszikYFTjGI3r3aszZkZlwp2RIorsnSlv0ED72WvQao25uJPoRyPFnU9AOUBg61o=
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2019 14:43:48.9478 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8ba1756a-72e4-43a7-fcc6-08d6a62ff946
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11]; Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR01MB2011
Archived-At: <https://mailarchive.ietf.org/arch/msg/uta/68Jj1mV1MbRR6qshOtsAPt43MCU>
Subject: Re: [Uta] Benjamin Kaduk's Discuss on draft-ietf-uta-smtp-require-tls-07: (with DISCUSS and COMMENT)
X-BeenThere: uta@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: UTA working group mailing list <uta.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/uta>, <mailto:uta-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/uta/>
List-Post: <mailto:uta@ietf.org>
List-Help: <mailto:uta-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/uta>, <mailto:uta-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Mar 2019 14:44:07 -0000

On Thu, Feb 28, 2019 at 02:49:13PM -0800, Jim Fenton wrote:
> On 2/27/19 12:11 PM, Benjamin Kaduk wrote:
> > On Tue, Feb 26, 2019 at 03:26:05PM -0800, Jim Fenton wrote:
> >> On 2/21/19 8:55 PM, Benjamin Kaduk wrote:
> >>> ----------------------------------------------------------------------
> >>> DISCUSS:
> >>> ----------------------------------------------------------------------
> >>>
> >>> I'm pretty sad to see that the "RequireTLS: no" header field has the
> >>> name "require TLS" and the opposite semantics.  It seems like the
> >>> positvie signal that we are trying to indicate is "Ignore TLS" or "TLS
> >>> optional" or similar; why does the header field need to be named
> >>> "Require TLS" -- isn't that confusing to users?
> >> "Ignore TLS" would have the wrong semantics; even with RequireTLS: NO we
> >> want it to negotiate TLS if it can; it's just that the sender is asking
> >> that TLS transport not be required by recipient policy for this
> >> particular message. "TLS optional" is closer (and is used in the heading
> >> of Section 4.2.2), but doesn't quite capture the intended meaning, which
> >> is "don't require TLS".
> > I think even swapping the order to "TLS Required: no" would be an
> > improvement, since it's a declarative statement rather than an imperative.
> 
> 
> Works for me. That might also clear up some potential confusion where
> the spec refers to the REQUIRETLS SMTP extension and the RequireTLS
> header field. It will need to be "TLS-Required: no" so there isn't a
> space in the header field name.
> 
> >
> >>> While I understand that there can be cases where it is desired to ignore
> >>> recipient-domain indications to use TLS, such as to report problems with
> >>> the TLS capabilities of those domains, I have strong qualms about
> >>> describing this protocol as an "override" for DANE and MTA-STS, or that
> >>> such recipient-domain signals should be "ignored".  In effect, by
> >>> attempting to do so, this document is fundamentally modifying the
> >>> protocol semantics for (SMTP) DANE and MTA-STS, something that can only
> >>> properly be done by clearly calling out the behavior change and an
> >>> Updates: relationship with the documents whose semantics are being
> >>> modified.  Alternately, it could also be reasonable to remove claims of
> >>> "override" or "ignore" and to leave the semantics of the header field as
> >>> being that the sender requests one behavior, and the MTA can balance the
> >>> requests of the sender and recipient at their own discretion. This is
> >>> still not a great option, though, as it would seem to put multiple IETF
> >>> proposed standards at odds with each other.
> >> I don't like the "own discretion" option either; I feel like some
> >> desired behavior should be specified, even if it's as a SHOULD. Since
> >> RequireTLS: NO affects the handling of a single message, it should take
> >> precedence over a general policy published by a domain for all messages.
> > I seem to be missing some logical steps here.  Why does that conclusion
> > follow from that input?
> 
> 
> Maybe not exactly in this context, but it's common for finer-grained
> directives to take precedence over coarser ones (in routing protocols,
> for example). So it seemed at least intuitive if not exactly logical.

Generally true, though here we see a fine-grained thing in domain A and a
coarse-grained thing in related domain B (er, using the generic English
definition of "domain", not the DNS one), so it's not quite as clear-cut.

> 
> >
> >> As to whether REQUIRETLS updates those specifications, I understand from
> >> Alexey that there is some precedent for not calling out an "Updates"
> >> relationship for mail extensions such as this, and he has far more
> >> experience than I on such things.
> > I think the plan is for the IESG to chat about this topic in real-time next
> > week (I was unable to make last week's call, unfortunately).
> 
> 
> Yes, I understand the discussion was pushed out.
> 
> >
> >>> I'm also concerned about the apparent new burden placed on senders to
> >>> actively decide whether every outgoing message requires end-to-end TLS
> >>> protection or is safe to forward without TLS, especially in light of the
> >>> apparent goal (see next paragraph) of quickly achieving (near-)universal
> >>> deployment.  There doesn't seem to be much in this document to justify
> >>> the stance that the default "don't care" option should be removed.
> >> I'm unsure whether or not near-universal deployment will ever be
> >> achieved. There are important use cases (reporters in remote
> >> jurisdictions sending email to their editors, dissidents communicating
> >> among themselves, workers at some sensitive NGOs communicating with
> >> their organizations) where limited deployment among these populations
> >> would be beneficial to protect their email against MITM attacks by
> >> middle-boxes would be beneficial.
> >>
> >>> The "must chain forward to final delivery" property for the REQUIRETLS
> >>> option seems to present some incremental deployment difficulties, in that
> >>> it will be nigh-impossible to successfully deliver such a message until
> >>> there is fairly significant deployment coverage.  E.g., if any major email
> >>> hosting provider does not implement, then it will forever remain a niche
> >>> technology.  What indication to we have that this technology can succeed as
> >>> specified?  If we anticipate it becoming a part of the de facto core,
> >>> mandatory, SMTP feature set, should we not indicate that by an Updates:
> >>> relationship?
> >> See above; I'm not sure whether it will remain a niche technology or
> >> not. I'm also not sure why the deployment coverage has to do with
> >> whether there should be an Updates: relationship.
> > It's not directly related to the deployment coverage, but rather to the
> > sense of "is this something that we consider to be logically part of the
> > core minimum implementable unit?".  If the deployment of this is big enough
> > that a substantial chunk of normal Internet-wide mail traffic sets the
> > REQUIRETLS tag, then de facto you must implement it if you want to keep
> > getting mail.  That's the case that I'm worried about, though the
> > subsequent discussion has made me less certain that that will be the end
> > state of deployment that we reach.
> 
> 
> Thanks for explaining. I expect it to remain an optional feature.

That's helpful to know, thanks.

> >
> >>> I'm also unsure exactly how tightly nailed down the (non-DANE) TLS
> >>> certificate validation process is supposed to be as a result of this
> >>> document; more in the COMMENT section.  It seems that without some form
> >>> of strict certificate (host)name validation, this mechanism does not
> >>> actually mitigate the lack of server authentication by the client that's
> >>> described as a goal.
> >> In what respect is the certificate name validation not strict? DNSSEC or
> >> MTA-STS is required to make sure that the MX hostname can't be altered
> >> in a DNS response, and that should be the name on the certificate.
> > DANE and/or MTA-STS give me an MX hostname.  Do I require that exact
> > hostname to be present in the X.509 certificate presented by the TLS
> > server?  I didn't see any text in the document that clearly says the answer
> > is "yes".
> 
> 
> I see that Viktor has explained this better than I would have. (Thanks,
> Viktor).
> 
> >
> >>> I'd also like to discuss whether it's safe to require that the tag and
> >>> header be mutually exclusive.  (As per the COMMENT section,) I don't have
> >>> a great picture on what scenarios could cause that to arise, how common
> >>> they are, and what the impact would be for strict enforcement.
> >> Section 4.1 describes the behavior if the MAIL FROM option and header
> >> field are both present: the MAIL FROM option wins.
> > I'm not saying it's under-specified; I'm asking if there's a reason we need
> > to allow the combination at all.  Are there existing deployments that allow
> > it that we need to be compatible with?  Does it provide some benefit in
> > some use case?  If there's no reason to have it, it just seems like
> > needless complexity and risk of misimplementation.
> 
> 
> No existing deployments exist that we need to be compatible with in this
> respect. Since the two mechanisms have opposite effect, the combination
> should never happen.

(My preference would be to just disallow it, but I don't plan to hold a
DISCUSS point to force the change -- when I said "I'd like to discuss"
that's all I wanted.)

> >
> >>> ----------------------------------------------------------------------
> >>> COMMENT:
> >>> ----------------------------------------------------------------------
> >>>
> >>> Section 2
> >>>
> >>>    o  The certificate presented by the SMTP server MUST either verify
> >>>       successfully in a trust chain leading to a certificate trusted by
> >>>       the SMTP client or it MUST verify successfully using DANE as
> >>>       specified in RFC 7672 [RFC7672].  For trust chains, the choice of
> >>>       trusted (root) certificates is at the discretion of the SMTP
> >>>       client.
> >>>
> >>> I don't see how this requirement restricts the presented end-entity
> >>> certificate so as to eliminate the attacks that exploit "the lack of server
> >>> authentication by the client".  What does certificate have to name in order
> >>> to be trusted by the client?
> >> The certificate has to name the hostname returned by the MX record
> >> lookup that the client MTA thinks it is communicating with (or recipient
> >> domain name in the case of finding the MTA via an A record lookup). Does
> >> this requirement need to be more explicit? I thought it was obvious.
> > "verify successfully" is pretty vague.  Do I just verify the signatures
> > along the chain?  Do I need to check those fiddly keyUsage bits?  Do I care
> > what the CN/SAN is?  We cite RFC 6125 in Section 4.2.1, but it's probably
> > prudent to reference it here as well.
> 
> 
> See Viktor's response.
> 
> >
> >>> Section 4.1
> >>>
> >>>    Upon receipt of the REQUIRETLS option on a MAIL FROM command during
> >>>    the receipt of a message for which the return-path is not empty
> >>>    (indicating a bounce message), an SMTP server MUST tag that message
> >>>    as needing REQUIRETLS handling.
> >>>
> >>> What processing should happen when REQUIRETLS is received and the
> >>> return-path *is* empty?
> >> Ben Campbell caught this as well; the exemption for bounce messages in
> >> this section needs to be removed.
> >>>            If the REQUIRETLS MAIL FROM parameter is specified, the
> >>>    RequireTLS header field MUST be ignored but MAY be included in onward
> >>>    relay of the message.
> >>>
> >>> How could this scenario arise?  (Why is it not a user error to attempt to
> >>> use both -- isn't one requiring TLS and the other disclaiming its use,
> >>> making them mutually incompatible?)
> >> It shouldn't normally happen, but I thought it worthwhile to define the
> >> behavior of the protocol in this case anyway.
> > I agree that it's worthwhile.  Could it be a hard error instead of this?
> > (Per https://datatracker.ietf.org/doc/draft-thomson-postel-was-wrong/)
> 
> 
> It could, but two mechanisms occur at different stages (envelope and
> message data). The error would not be reported until the end of the DATA
> stage of message transmission, although I suppose that's OK. We should
> probably allocate another error subcode if we're going to do that.

Understood.

-Benjamin

[more good stuff trimmed]