Re: Last Call: draft-freed-sieve-environment (Sieve Email Filtering: Environment Extension) to Proposed Standard

Ned Freed <ned.freed@mrochek.com> Tue, 18 March 2008 18:07 UTC

Return-Path: <ietf-bounces@ietf.org>
X-Original-To: ietfarch-ietf-archive@core3.amsl.com
Delivered-To: ietfarch-ietf-archive@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B0EF028C7A0; Tue, 18 Mar 2008 11:07:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -100.462
X-Spam-Level:
X-Spam-Status: No, score=-100.462 tagged_above=-999 required=5 tests=[AWL=-0.025, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_ORG=0.611, RDNS_NONE=0.1, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oQ6nIZjaDxmm; Tue, 18 Mar 2008 11:07:48 -0700 (PDT)
Received: from core3.amsl.com (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A5CF828C5A9; Tue, 18 Mar 2008 11:06:09 -0700 (PDT)
X-Original-To: ietf@core3.amsl.com
Delivered-To: ietf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id F3DE128C781 for <ietf@core3.amsl.com>; Tue, 18 Mar 2008 11:06:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id boBzBoakGcMX for <ietf@core3.amsl.com>; Tue, 18 Mar 2008 11:06:04 -0700 (PDT)
Received: from mauve.mrochek.com (dsl-66-59-230-40.static.linkline.com [66.59.230.40]) by core3.amsl.com (Postfix) with ESMTP id 523B728C7BC for <ietf@ietf.org>; Tue, 18 Mar 2008 11:03:35 -0700 (PDT)
MIME-version: 1.0
Received: from dkim-sign.mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01MSKBXNPNDC002UL7@mauve.mrochek.com> for ietf@ietf.org; Tue, 18 Mar 2008 11:01:15 -0700 (PDT)
Received: from mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01MSK4JET0EO000RLZ@mauve.mrochek.com>; Tue, 18 Mar 2008 11:01:11 -0700 (PDT)
Message-id: <01MSKBXLYHO6000RLZ@mauve.mrochek.com>
Date: Tue, 18 Mar 2008 10:45:44 -0700
From: Ned Freed <ned.freed@mrochek.com>
Subject: Re: Last Call: draft-freed-sieve-environment (Sieve Email Filtering: Environment Extension) to Proposed Standard
In-reply-to: "Your message dated Tue, 18 Mar 2008 11:07:34 -0400" <FC6CB7998C7FE7BE57A7E54A@p3.JCK.COM>
References: <20080314135254.ECC1628C8BB@core3.amsl.com> <tslr6e84dpd.fsf@mit.edu> <FC6CB7998C7FE7BE57A7E54A@p3.JCK.COM>
To: John C Klensin <john@jck.com>
DKIM-Signature: a=rsa-sha1; c=nowsp; d=mrochek.com; s=mauve; t=1205863276; h=Date: From:Subject:MIME-version:Content-type; b=lPgK8SVfsi/mOC7yR0U5/gvF3 yFeNZEnK57K1/dS9NvdBa6nvNNxx5sxk/34Ua0OfirsMJBoMwfjfD3E1mAoFQ==
Cc: Sam Hartman <hartmans-ietf@mit.edu>, ietf@ietf.org
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: IETF Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: ietf-bounces@ietf.org
Errors-To: ietf-bounces@ietf.org

> Sam,

> A few comments about differences in philosophy rather than
> specific details of this proposal.  Once one gets past that
> difference in philosophy, it is not clear to me how much of your
> comments are major but...

> --On Tuesday, 18 March, 2008 04:51 -0400 Sam Hartman
> <hartmans-ietf@mit.edu> wrote:

> >...
> > In particular I believe that the remote-host and remote-ip
> > variables are inappropriate and should not be standardized.
> >
> > I believe an applicability statement should be added to the
> > extension making it clear that this extension is only for
> > interpreter state and that another extension should be
> > designed for examining information about the message.
> >...
> > Section 4.3.3 claims that experimental RFCs are an appropriate
> > mechanism to register non-standards-track variables intended
> > for wide use.  That seems wrong.  I recommend revisiting the
> > registration policy.

> The bottom line about Sieve is about providing a standard way to
> let mail-receiving and mail-reading client machines communicate
> with mail server systems about filtering and classification of
> mail.  Both the client and server systems in the Sieve case
> occur after what the mail transport standards refer to as "final
> delivery".

This actually isn't true. Some Sieve implementations, including ours, operate
before final delivery. (Usually just before.) Others operate just after. And in
the imap-sieve case there is now a situation where Sieve can be executate LONG
after final delivery.

Indeed, there's at least one Sieve extension - ereject - that requires
operation at or before final delivery in order to funciton (it calls for a 5yz
SMTP response - no way can that happen after final delivery).

> For practical reasons, there has been general
> consensus in the email protocol community for many years that
> filtering and classification are better done on always-on/
> always-connected/ always-active servers than on mail
> receiving/reading machines... if only because of perceived
> performance issues with the latter.

Performance issues are part of it, but there's also the temporal context to
consider. Some filtering operations are highly time dependent - indeed, there's
a Sieve extension (date) specifically do deal with such things.

> Part of the elegance of
> Sieve is that it tries to be flexible on that subject: if an
> operation cannot be specified to and performed on the server,
> then it can be acted on by the client, using the same vocabulary
> for describing what is to be done.  But the main goal, IMO, is
> to permit client control of server-side filtering operations
> with a standard vocabulary.

Exactly.

> The operations and vocabulary that are being specified for Sieve
> aren't doing anything new or anything we can prohibit by not
> publishing pieces of the specification language or by making
> registration difficult.

This is the key point. You can rail all you want about how the client IP
address or host name oren't legitimate things to base your filtering on, but
that isn't going to change the fact that people do this sort of filtering all
the time. Heck, there are entire services built around this model, and I could
see wanting to take the remote IP address an feed it into the external list
extension in order to access information from such a service.

> If we keep functionality out of Sieve,
> we don't prevent that functionality from being used.  We just
> impede filtering being offered as a service by multiple-user
> email providers, keep those of us who have been doing
> server-side filtering and classification for years from doing so
> unless we run our own servers and can run scripts and custom
> filters there, and push everyone else into client-side filtering
> that slows down the perceived performance of mail reading.

Very nicely put. I completely agree.

> Now, use of Sieve is unwise, and perhaps dangerous, if there is
> not a fairly strong trust relationship between the client and
> server and if the client doesn't have a good model of server
> capabilities.  I would wish it were otherwise, but that
> relationship reflects reality.  I personally believe those
> issues are adequately covered in the base Sieve materials, but
> perhaps you disagree and should be looking for more explanation
> there (or elsewhere).

I believe there are a number of things we got wrong that unessarily hinder
script portability and reliability, but the good news is almost all of them can
be address through extensions of one sort or another. Access to the sort of
informaton environment provides addresses one of these concerns. (Another
example: Currently scripts have a choice of requiring an extension or doing
without it - there's no way to use an extension if and only if it is available.
This one is addressed by the ihave extension defined in another one of my
drafts.)

				Ned
_______________________________________________
IETF mailing list
IETF@ietf.org
https://www.ietf.org/mailman/listinfo/ietf