Re: IMAP extensions needed for SPAM/HAM and WHITE/BLACK listing

Ned Freed <ned.freed@mrochek.com> Wed, 08 July 2009 19:08 UTC

Return-Path: <ned.freed@mrochek.com>
X-Original-To: apps-discuss@core3.amsl.com
Delivered-To: apps-discuss@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 10B803A6918 for <apps-discuss@core3.amsl.com>; Wed, 8 Jul 2009 12:08:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.527
X-Spam-Level:
X-Spam-Status: No, score=-2.527 tagged_above=-999 required=5 tests=[AWL=0.072, BAYES_00=-2.599]
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 4cLq5WgZtgIg for <apps-discuss@core3.amsl.com>; Wed, 8 Jul 2009 12:08:35 -0700 (PDT)
Received: from mauve.mrochek.com (mauve.mrochek.com [66.59.230.40]) by core3.amsl.com (Postfix) with ESMTP id 14B463A68D4 for <discuss@ietf.org>; Wed, 8 Jul 2009 12:08:35 -0700 (PDT)
Received: from dkim-sign.mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01NB2RBB0E4G015OWJ@mauve.mrochek.com> for discuss@ietf.org; Wed, 8 Jul 2009 12:08:55 -0700 (PDT)
Received: from mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01NB2NV4DYVK001ML6@mauve.mrochek.com>; Wed, 08 Jul 2009 12:08:52 -0700 (PDT)
Date: Wed, 08 Jul 2009 11:54:05 -0700
From: Ned Freed <ned.freed@mrochek.com>
Subject: Re: IMAP extensions needed for SPAM/HAM and WHITE/BLACK listing
In-reply-to: "Your message dated Wed, 08 Jul 2009 11:08:28 +0100" <4A54701C.6080107@isode.com>
To: Alexey Melnikov <alexey.melnikov@isode.com>
Message-id: <01NB2RB8UTA4001ML6@mauve.mrochek.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN; format="flowed"
Content-transfer-encoding: 7bit
References: <371C2EEC-8CBD-4AC1-B07A-928352E19DCB@pobox.com> <F9D917EB-A09B-48BB-AA30-F31EADEDD7DD@muada.com> <28941.1246868682.560969@puncture> <4A51D1A1.5040507@isode.com> <01NAZVQAYWH4001DLH@mauve.mrochek.com> <47CB230E-B713-4098-82D4-318744434C46@pobox.com> <01NB0BOZYUPY001ML6@mauve.mrochek.com> <6DECD560-B257-4E6E-80E7-A99A69D297C6@pobox.com> <01NB14JAPS8E001ML6@mauve.mrochek.com> <F4A90756-9251-4CB8-9776-77F3202617A5@pobox.com> <01NB1TV04NJS001ML6@mauve.mrochek.com> <4A54701C.6080107@isode.com>
Cc: ietf-imapext@imc.org, Ned Freed <ned.freed@mrochek.com>, George Michaelson <ggm@pobox.com>, general discussion of application-layer protocols <discuss@ietf.org>
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Jul 2009 19:08:36 -0000

> Ned Freed wrote:

> >> I have no desire to argue against my own proposal! sorry if I
> >> misunderstood the tenor of some comments to this suggestion.
> >
> >> The original posting asked about two things
> >
> >> 1) spam/ham
> >
> >> 2) white/black
> >
> >> so far, people seem to be focussing on 1). I acknowledge problems with
> >> 1), I appreciate that people are trying to address 1) as a possibility.
> >
> >> I asked about 2). I asked you if, ignoring 1), it was possible or
> >> plausible to send white/black information about sender, if 1) was hard
> >> or intractable.
> >
> > Of course it's possible, but this has no business being in IMAP. IMAP
> > is a
> > message access protocol, not an address handling protocol. It is also
> > already
> > quite complex, and extending its function to include what amountss to a
> > specialized address book capability is a really bad idea IMO.
> >
> > In fact a pretty good case can be made that it's inappropriate to use
> > IMAP for spam/ham classification, but at the spam/ham classification is
> > intrinsicly tied to messages in the store. The same cannot be said for
> > address white and blacklisting.

> +1

> >> Does that make more sense? I do realize white/black listing is a
> >> different PROBLEM to spam/ham marking, but neither of them currently
> >> have support directly in imap, and I imagine both of them would use
> >> IMAP extensions to pass information client-server.
> >
> > The place where I'd like to see white and black listing done is in
> > CARDDAV, not
> > IMAP.

> Or LDAP :-).

That's actually how we do it now. We're hoping to move to CARDDAV in the
future.

> There is also a Sieve extension for making use of whitelists/blacklists
> during mail delivery. See draft-melnikov-sieve-external-lists-02.txt.
> It can work with CARDDAV, LDAP and other things.

Interestingly, this extension in its current form is not compatible with
at least one of the proposals that was made here. The issue is one I've
raised before - the fact that :list is separate argument and not a match type.

Where there is clearly some utility in being able to say stuff along the
lines of:

    header :contains :list "subject" "tag:dirty-word-list"

The problem is that in order for this to work the list has to be enumerable.
Not all lists are enumerable, and even some that are are so large even though 
oyu can enumerate them in theory you can't afford to do so in practice.

One use case where this matters is when the list is a set of hashed values. The
way you find if something is "on the list" is to hash it and see if that value
appears. And even if the input string is short enough that you can enumerate
all the unique substrings, how about :matches and :regex? Good luck with
those.

Hashed lists have in fact been proposed in the present discussion as a means of
avoiding giving your address whitelist to the mail server. I happen not to
think this is a useful thing to do for a variety of reasons, mostly having to
do with address canonicalization (or lack thereof), but there are other
use cases where hashed lists make more sense.

So, although it reduces functionality, I believe :list should be a match type
and the underlying comparison type that's done should be a property of the list
itself.

				Ned