Re: [Extra] Sieve REJECT and :fcc [was Re: Meeting minutes and notes from today]

Stan Kalisch <stan@glyphein.mailforce.net> Sun, 07 January 2018 22:57 UTC

Return-Path: <stan@glyphein.mailforce.net>
X-Original-To: extra@ietfa.amsl.com
Delivered-To: extra@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1B005126DC2 for <extra@ietfa.amsl.com>; Sun, 7 Jan 2018 14:57:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mailforce.net header.b=Hyar7+YE; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=YO/5Sp9N
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 N27Wr4-TZb0G for <extra@ietfa.amsl.com>; Sun, 7 Jan 2018 14:57:39 -0800 (PST)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0F76D126DED for <extra@ietf.org>; Sun, 7 Jan 2018 14:57:39 -0800 (PST)
Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 28A0A20B4C for <extra@ietf.org>; Sun, 7 Jan 2018 17:57:38 -0500 (EST)
Received: from frontend1 ([10.202.2.160]) by compute7.internal (MEProxy); Sun, 07 Jan 2018 17:57:38 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailforce.net; h=content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=YejpYvgLUe0Toh8y4xyj9dgAJuW44 SBZs61oR7suW8A=; b=Hyar7+YEtpa3vOE59yFDavazggTq2+JEC9asPNb3cse9g wKbiYSE6BXB3K5eeYnenXIuGPJeuMUOoAsz57yx62BpaDX43pch3ao8HHq5+4Zic uqjCsZuXrQEFt9bVEVPWJvhcUbRBS7REnteUFNPOxeCN69Wh6eDW4+4mZH2yTHsY lHkjHipZ+qCT70WEWBUp4UU/4ockpJahgKYPxeNtHQE3cKeelDjYyaHc6cdTuMmR WHjzvvemNSk5+emqiBGaIrnluP5z3M04XUKq3nUp3O4JtRMLmCZss670yZB8ugT+ +aI+PX+Rp/l/+4H1j0yrY3xz1oOQ8f7jTSyv/IXUw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=YejpYv gLUe0Toh8y4xyj9dgAJuW44SBZs61oR7suW8A=; b=YO/5Sp9N7U2Lsx8druj7OX FVjrgkC2Au3s+0+OK60dG7lVmji9dwZz/bhm32y6iETcbJfveVAR44JS7C88lWYX Of1EsI+i94vVB9oLaapEfSdH/QsWwl5ujW2tJs/1QMbQwFPcyic+aBAvLhrK6Nn8 +R3J1vJ65GgzkJ7ndNANx9gruYCSFt4RaLTtAsUV5S40wfsUvQwWAKRVJmxRJMMg h3XLEyQBClILrcnPavqyyB/EAeH0K2LMEWU70goisH30eGTxH/uUhYB1ZNsooIx+ RNYs5DyQKGOYWErb7eONvwtF5xiC9N2OmYD77UNyfGJJc5tkPFKc//BJy770Y4Jg ==
X-ME-Sender: <xms:4qVSWuv8SVafCn4oRxUIhgE1JCSxUaP2CoxyvGE52Lia7rnY_wR5tQ>
Received: from [192.168.1.71] (108-84-31-27.lightspeed.tukrga.sbcglobal.net [108.84.31.27]) by mail.messagingengine.com (Postfix) with ESMTPA id C1AD97E3E1 for <extra@ietf.org>; Sun, 7 Jan 2018 17:57:37 -0500 (EST)
References: <1510734636.1704307.1173072248.27572238@webmail.messagingengine.com> <C0D8D552-4B1C-49D9-8CCC-E6F57F225C1A@glyphein.mailforce.net> <1515028094.3135331.1223576440.053F86DC@webmail.messagingengine.com> <01QNFXVO7LVS000051@mauve.mrochek.com> <BE46D703-89FF-4250-BFF8-EB194729D4CF@glyphein.mailforce.net> <01QNK22FBJC0000051@mauve.mrochek.com>
From: Stan Kalisch <stan@glyphein.mailforce.net>
Content-Type: text/plain; charset="utf-8"
X-Mailer: iPhone Mail (13G36)
In-Reply-To: <01QNK22FBJC0000051@mauve.mrochek.com>
Message-Id: <FD410429-A7E6-411F-AF01-FD39AADBC4D5@glyphein.mailforce.net>
Date: Sun, 07 Jan 2018 17:57:34 -0500
To: extra@ietf.org
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (1.0)
Archived-At: <https://mailarchive.ietf.org/arch/msg/extra/cWDYTXWEYrn1xcM9Zd9dROQPxR8>
Subject: Re: [Extra] Sieve REJECT and :fcc [was Re: Meeting minutes and notes from today]
X-BeenThere: extra@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Email mailstore and eXtensions To Revise or Amend <extra.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/extra>, <mailto:extra-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/extra/>
List-Post: <mailto:extra@ietf.org>
List-Help: <mailto:extra-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/extra>, <mailto:extra-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 07 Jan 2018 22:57:41 -0000

On Jan 7, 2018, at 8:42 AM, Ned Freed <ned.freed@mrochek.com> wrote:

>>> Making service-level copies of messages is
>>> one thing, giving users a direct way to conveniently say "I didn't get this
>>> message" when they actually did is quite another.
> 
>> Perhaps, but, after all, reject already provides that facility.  But that's not the central point of my argument in favor of allowing reject to invoke :fcc.
> 
>> Some users have arguably (at least, certainly morally) legitimate reasons to
>> lie about the delivery of mail.  The users who first come to my mind are
>> survivors of domestic violence and/or sexual assault.
> 
> I object even more strongly to this justification for adding such a feature.
> 
> There are at least two problems here: We haven't even attempted to work through
> all the security implications of trying to hide delivery of email. (Rejection
> after delivery is another matter entirely, but we're not talking about that
> here.)

Actually, I'm talking about both.

Users can in fact lie about the reason a message triggers, say, a MDN.

> There are all sorts of ways information can leak and getting this wrong in
> matters of life and death is completely unacceptable.

I am not denying this and couldn't agree more.

> (You might start by
> thinking about the handling of multi-recipient cases and how you intend to
> maintain the privacy of bcc recipients while maintaining a consistent
> appearance of the DSNs you send back versus the ones you provide via :fcc.)
> 
> Additionally, even if we do all the work to specify this properly, do you think
> implementors will get it right? Past experiences says the chances of that are
> essentially nil.

My reaction to that is that implementors getting a spec right is *always* a concern of mine.

With regard to the issue of DSNs, I'll concede I'm not aware of what all Sieve implementations do and was somewhat surprised by the text about them in RFC 5429.  (This isn't a criticism; I know that people sometimes do experiments that specs have to attempt to address.)  I do know if I were to write an implementation that integrated DSNs, I would tiptoe toward it for many of the same reasons you describe.

Given that Sieve was designed to act on messages upon delivery, if enough implementors here in the WG aren't interested in the idea of even pursuing anything linking Sieve to DSNs, then it's not of the greatest concern to me if the MDN for :fcc on reject is made mandatory.

> And a badly implemented system of this sort could cause
> exactly the harm it was trying to prevent.

Of course.

> More generally, the business of mail interception for legal/law enforcment
> purposes should not be delegated to - let's face it - an obscure feature on an
> obscure extension.
> It's too important for that, and too important to get right.
> 
>> Google surely had in
>> mind stalking and harassment when it provided Google Voice a mechanism to lie
>> about whether or not someone had placed a call to a user's valid phone number.
> 
> This would be more or less equivalent to an MSP providing the means to say
> "this is not a valid address" instead  of saying "you're not allowed to send to
> this address". Which Sieve reject provides, modulo the ability to use a
> 5.1.1 response versus a 5.7.x response code. (A feature our implementation
> provides for system-level sieves.)
> 
> However, a word of caution about side channel risks is once again in order.
> 5.1.1 no such user responses are typically given to RCPT TO; whereas Sieves
> responses come after the message has been transferred. So it may be  possible
> to tell when such a mechanism is used.
> 
> And let's please not entertain the notion that we can simply ignore
> side-channel attacks here.
> Not to put too fine a point on it, but it seems a
> bunch of Intel engineers thought that way back in the 90s, and look where we
> are now.

No, I think that's apropos.

>> Granted, backscatter, MDN, DSN, etc., of course, aren't even peripheral
>> considerations in rolling out something like that for phone calls.  But, again,
>> we're only talking about :fcc; reject's ship has already sailed.
> 
> I have no idea what this means.

Again, it's about the fact that reject can accommodate the ability to be used with fileinto, etc, and that reject essentially carries a minimal ability to lie about why a message's disposition has ended up the way it has.

>> I acknowledge your point that "delivery failed" is conspicuous by virtue of the fact that it is missing from RFC 8098.  And I can't say that this gives me no pause of any kind.  But it still seems to me, when you look at both the technical and very real human considerations, that this effort is more trouble than it's worth—I'm having a hard time believing adding :fcc to reject is substantially going to increase reject's (mis)use.  So this strikes me as something that, in effect, merely serves as a lecture to users who may lie, but 1) are not necessarily sanguine or happy about lying, and 2) may actually have the need to lie.  That is a scenario that is not implausible at all.  It is a privacy issue.  I don't want to *encourage* users to lie, but, on the other hand, I don't think the technical arguments are strong enough for the IETF to dictate that a language does or does not deal with such problems.  That should really be entrusted to users and administrators.  Some things, in the end, have to be entru
>> to the community.
> 
> And again, I have no objection whatsoever to reject :fcc generating a "deleted"
> MDN response. But once again you have the side channel situation to consider -
> reject :fcc causing a different response than reject without :fcc also
> leaks information.

I haven't looked at Cyrus code in a while, but, presumably, the implementors behind this draft have considered such things.


Thanks,
Stan