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

Ned Freed <ned.freed@mrochek.com> Sun, 07 January 2018 20:24 UTC

Return-Path: <ned.freed@mrochek.com>
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 23A16126C2F for <extra@ietfa.amsl.com>; Sun, 7 Jan 2018 12:24:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.011
X-Spam-Level:
X-Spam-Status: No, score=-2.011 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mrochek.com
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 z3V0sHcc5-V1 for <extra@ietfa.amsl.com>; Sun, 7 Jan 2018 12:24:50 -0800 (PST)
Received: from mauve.mrochek.com (mauve.mrochek.com [68.183.62.69]) (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 DE1C61241FC for <extra@ietf.org>; Sun, 7 Jan 2018 12:24:49 -0800 (PST)
Received: from dkim-sign.mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01QNK22M6RPS001T5M@mauve.mrochek.com> for extra@ietf.org; Sun, 7 Jan 2018 06:22:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mrochek.com; s=201712; t=1515334931; bh=SVA0EWdV6ZuVTNaUyn1OmslnRS6k1QI50woQ3Zdf930=; h=Cc:Date:From:Subject:In-reply-to:References:To:From; b=k+V1AtkTLwQSDWuKnA7ZP+6cNa55hXZrnssPNqIDwzpQ3tZXkHqvubWNWpUw0Z6Ii oI39nh8rE1ZmR8MLY38EzSw1YtUc7QSI7cI+Z1E53otAK0Osudy35+mMjgVeL6ec+v knKNlcTJNpo0xphnz/1IDwdXb/MvsyjHkqLJ84YQ=
MIME-version: 1.0
Content-transfer-encoding: quoted-printable
Content-type: TEXT/PLAIN; charset="utf-8"
Received: from mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01QNFVO5W1CW000051@mauve.mrochek.com>; Sun, 07 Jan 2018 06:21:55 -0800 (PST)
Cc: Ned Freed <ned.freed@mrochek.com>, Bron Gondwana <brong@fastmailteam.com>, extra@ietf.org, Murchison Ken <murch@fastmail.com>
Message-id: <01QNK22FBJC0000051@mauve.mrochek.com>
Date: Sun, 07 Jan 2018 05:42:09 -0800
From: Ned Freed <ned.freed@mrochek.com>
In-reply-to: "Your message dated Thu, 04 Jan 2018 14:40:36 -0500" <BE46D703-89FF-4250-BFF8-EB194729D4CF@glyphein.mailforce.net>
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>
To: Stan Kalisch <stan@glyphein.mailforce.net>
Archived-At: <https://mailarchive.ietf.org/arch/msg/extra/YQ6IQ-wRxQtI4lfQ98KnpRU9KWs>
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 20:24:52 -0000

> On Jan 4, 2018, at 10:17 AM, Ned Freed <ned.freed@mrochek.com> wrote:

> >>> On Fri, 17 Nov 2017, at 09:06, Stan Kalisch wrote:
> >>>
> >>> Hi,
> >>>
> >>> On Nov 15, 2017, at 3:30 AM, Bron Gondwana
> >>> <brong@fastmailteam.com> wrote:>> *There is an open question for this one:*
> >>>>
> >>>> https://datatracker.ietf.org/doc/draft-ietf-extra-sieve-fcc/
> >>>>
> >>>> Ned Freed objected to supporting :fcc for the REJECT action because
> >>>> it allows the sieve server to "lie" about whether it's keeping a copy
> >>>> of the message.  There was debate about whether we should stop people
> >>>> lying at this level, especially since a mail flow could take a copy
> >>>> of every single email before it reached sieve.>
> >
> > That's true but beside the point. 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.)

There are all sorts of ways information can leak and getting this wrong in
matters of life and death is completely unacceptable. (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. And a badly implemented system of this sort could cause
exactly the harm it was trying to prevent.

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.

> 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.

> 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.

				Ned