Re: Comments on IM2000

James Craig Burley <[email protected]> 13 Apr 2005 06:40:51 -0000
Newsgroups gmane.mail.im2000
Message-ID <[email protected]>
> http://pobox.com/~b.candler/doc/misc/im2000.html

Excellent document!  Here's my take on it.

Item 2i, on content filtering possibly becoming unnecessary:

  One person's UBE is another's WBE (Wanted Bulk Email).  The
  *pertinent* definition of "unwanted" email ultimately comes down to
  a recipient's personal choices, and the basis of *most* (not all)
  such choices revolve around *content*, not identity of originator.

  As an exercise, imagine we all had unlimited bandwidth, storage, and
  infinitesimal latencies in our communications with each other.
  (It's not *that* difficult to imagine this; it's the direction in
  which technology has been heading for centuries, even millenia.)

  And, imagine the population was constantly changing -- not just new
  people coming "on line", but existing people changing their ways
  (going from being spammers to "solid citizens", etc.).

  Here, technology is *clearly* not the limiting factor; our
  individual capacity to cope with the influx of information, and sift
  the chaff from the wheat, becomes more evidently the nub of the
  problem.  Any "trust system" that depends on a single worldwide
  "root" is fatally flawed; we don't depend on one in real life
  anyway.

  In that scenario, the problem of "too much spam" is really one of
  "too much information, not usefully prioritized for *me*", since, as
  everyone who has received emails from friends about the threat to
  the Brazilian rainforest or similar knows, what's important (and not
  spam) to a sender is not always *that* interesting to a recipient,
  and vice versa (a sender might easily offer advice that is
  tremendously valuable to a recipient).

  (This ideal world can't avoid the problem of viruses and the like,
  since their equivalents exist in *our* real world.  Even if we
  assume there will be perfect security across all computer systems,
  this ideal world will still be tempting for someone to *try* to
  target by sending tons of "useless" emails trying to get people to
  do something stupid.  In practice, therefore, even ideal
  technologies will require filtering based on *content*, not just
  identity or history of the sender.)

  Accordingly, especially as technology advances, but even now, the
  ultimate solution includes giving end users an easy way to
  prioritize their incoming email so UBE *tends* to be easy for users
  to recognize, skim through, and filter out.  That will probably mean
  using AI-like technologies to serve as a per-user agent to do the
  content filtering and prioritization automatically, though info on
  the sender/originator can be very helpful as well.  (E.g. one's
  email-reading agent can say "this email appears to solicit a unique
  partnership, but the sender is known to have solicited a similarly
  unique partnership with about 200 million other people in the past
  three days".)

  The problem with *that* viewpoint is that it doesn't really justify
  switching to IM2000, since spam is ultimately defined based on
  *content*, not on the (label worn by or given to the) originator.
  But analyzing *content* requires retrieving the message anyway, in
  order to analyze it, apparently defeating one of the big wins of
  IM2000.

Given that we'll never see this ideal world, and that latencies (as
well as outages) *are* a huge problem, we then move on to the One Big
Problem with IM2000 -- that of the end user seeing substantial delays
when trying to pull up any given message after clicking "read" on a
notification panel.  (You address this in "Points for discussion and
further thought".)

To work around that, and to work around the fact that blacklists will
never be perfect, whitelists will never be easily maintainable, laws
will never be vigorously and uniformly enforced, and so on -- else we
could probably just stick with SMTP, thankyouverymuch -- the reality
is that the vast majority of *real* end users' mail-reading systems
*will* retrieve message contents immediately, or nearly so, after a
notification is retrieved -- to cache it (a form of prefetching), to
scan it for spam/viruses, or, most likely, both.

This leaves, for me, the "big win" for IM2000 -- that of being able to
retrieve a message without unpinning it.  But that is not, in SMTP,
terribly unlike returning a temporary failure response after receiving
the message contents, yet still "delivering" the entire message, after
a fashion, for subsequent processing, analysis, etc., in order that a
subsequent delivery attempt by the upstream SMTP client might be
"rewarded" with a success response, a permanent failure response, or
just another temporary failure response (either because scanning has
been inconclusive or because the SMTP server has decided to simply
irritate/tarpit a "known" spammer).

This form of receipt, where the sender is told "I'm not accepting
*responsibility* for delivery, but I might look over the entire
payload and accept or permanently reject it later on if, or when, you
retry", is somewhat like today's greylisting.  But since it accepts
transmission of the message and (potentially) does something with that
message, I might call it "beigelisting" or "ecrulisting".  ;-]

Given this perspective, I wonder why we need to move to IM2000 at all,
when the delivery of the message *contents* is already handled fairly
efficiently and inline (without a reverse-DNS lookup) by SMTP.  Adding
some protocol goo to enable tracking of once-delivered messages could
avoid the necessity of always transmitting an ecrulisted message a
subsequent time.

(We tend to think and talk as if message transmission involves the
sender giving *two* things to the receiver -- the envelope and the
message contents.  I believe a *third* thing is involved: that of
*responsibility* for the message, or at least its contents.  Spammers
get their big bang for the buck not just by transferring message
contents, but by transferring *responsibility* for those contents.
Any system that can accept contents while deferring accepting
responsibility includes a substantial potential built-in cost for
senders of UBE that most ordinary users will not find difficult to
bear.)

Item 8d, parenthetical comment on privacy problems, etc.:

  IM2000 definitely makes for a "cleaner" separation between notifying
  a recipient of the availability of a message and sending the message
  along, since, with SMTP, you pretty much *have* to send the message
  in order to make a sufficiently useful notification (taking into
  account relaying, the recipient's desire to filter/prioritize based
  on info in the header of the email that should really be in, or
  "on", the envelope, and so on).

  I don't worry too much about the implications of this, however.

  First, just because an IM2000 message has been retrieved, or even
  unpinned, does *not* mean any end user has viewed it.  That could
  have been done solely to apply a filter/prioritization to the
  message, to assure that the sender isn't just sending out arbitrary
  notifications, to "cache" a message that isn't ever actually read by
  a real person (such as for an abandoned account), etc.

  Second, the reality of any two-party exchange of information is that
  the sending party can never safely *assume* the receiving party saw
  an entire message *unless* the receiving party specifies it did so
  via a confirmation.

  Therefore, a receiving party can always choose to not confirm it
  received the message, even though it did.  (The sender can insist on
  breaking the message into a series of distinct message chunk,
  sending each chunk only after receiving confirmation that a previous
  chunk has been read; this doesn't really solve the problem for the
  final chunk, and makes the transmission protocol much slower, as
  latencies become amplified in their effect.)

Item 9, "Retransmission of notifications"

  What I think keeps getting overlooked in discussions about UBE,
  SMTP, IM2000, and so on, is that it's not just the *recipient's* job
  to somehow decide whether some message is desired.

  It's the *sender's* job to decide how important successful delivery
  of a given message is to that sender.  As the end-to-end principle
  implies, since email delivery can *always* ultimately fail (and,
  even with SMTP, this can include the possibility of failure to
  deliver a bounce back to the sender), it is up to the *sender* to
  expend resources to assure successful delivery via the email system
  or, if that fails (or might be deemed by the sender to fail, e.g.
  no confirmation within the sender's desired timeframe), by some
  other means.

  These sorts of discussions take this *implicitly* into account,
  especially when people talk about Challenge/Response -- "if I send
  an email to you giving you advice on something you ask about in a
  public forum, why should *I* waste time responding to *your* email
  system's challenge?" -- but I think it should be made both more
  explicit and fine-grained, on a per-delivery basis.

  Therefore, a *sender* should be able to control just how
  "persistent" his outgoing MUA is in terms of notifying the recipient
  about the message being available, checking on the status of
  delivery, and so on.

  IM2000, as presently formulated, really doesn't offer much more
  flexibility in this regard than does SMTP.  (One could argue that
  SMTP's flexibility in this regard hasn't been exploited, suggesting
  that indicates the capability isn't desired.  My counterargument
  includes the fact that *spammers* already exploit this flexibility
  by running "less persistent" SMTP clients; hence the apparent
  "success" of anti-UBE schemes like greylisting.  I've certainly made
  some use of my primitive abilities to determine the relative
  importance of outgoing messages, since, as I run my own MTA, I can
  see whether, when, and sometimes how, certain important messages are
  successfully delivered.  Ideally, MUAs should make this easy by
  reporting even temporary SMTP delivery failures back to the user in
  some fashion, logging all delivery attempts, and so on, on a
  per-message basis.)

  An advantage to giving senders a wider range of options when it
  comes to notifying and inquiring about outgoing emails is that it
  allows *recipient* systems to actually "bias" their prioritization
  of incoming emails based on the apparent persistence of the sender.

  Rolling this sort of system out from the beginning would offer great
  assurance that the retransmit features of IM2000 *would*, in fact,
  be properly and thoroughly tested.

Item 10, "Dynamic equilibrium?"

  Great point.  Since one person's UBE is another's WBE (Wanted Bulk
  Email), spammers will always have some market out there.

  Therefore, I don't think "eliminating" spam is possible.  I think
  the solution lies in giving end users an easy way to prioritize
  their incoming email so spam *tends* to be easy to for users to
  recognize, skim through, and filter out.

  My question is (and has been, for some time), will the expense of
  moving to IM2000 justify the *relative* reduction in spam that we'd
  actually see, in practice?

I believe any new email protocol -- IM2000 or an SMTP upgrade -- gives
us the biggest bang for the buck by replacing the bounce concept with
the tracking concept (widely used by delivery services such as FedEx
and UPS).

Accordingly, the response to a tracking request (issued, presumably,
by a sender) might, if the recipient so chooses, include more than
just "message contents have been retrieved" -- it might include
"message has been placed in recipient's in-box at [low/medium/high]
priority", "message has actually been read by recipient", "message has
been [archived/printed/trashed/shredded] by recipient", and so on.

Without this facility, many users on "friendly" terms will try to
present and/or obtain the information via some other means.  So it
might as well be included as an option in protocol.

Since, in reality, IM2000 would *have* to be a store-and-forward
protocol to meet widespread acceptance (other IM2000 advocacy appears
to deny this, but your own description of how it would be useful
essentially *assumes* some capability equivalent to the
store-and-forward capability of SMTP, especially with POP3 and/or IMAP
added), issues revolving around transferring, redirecting, and/or
forward responsibility for message notification and content delivery
would presumably exist for message *tracking* as well.


All in all, I've come to believe the "email problem" is becoming just
an increasingly large subset of the general problem of sharing,
transmitting, authenticating, storing, mirroring, revising, and
end-of-lifeing (and so on), *information*.

That is, it seems to me that, between our increasing awareness of the
need for a great deal more flexibility in our email systems and of
that for other related systems (version control; website handling,
including RSS; blogging; software distribution; and so on), it might
be useful to begin thinking in terms of a "grand unified principle" of
information exchange, reduced to a coherent architecture that can be
designed and implemented as a general-purpose information broker on
top of an unreliable, heterogenous network like the Internet.

(E.g. sending an email is not terribly unlike uploading a file,
except, for one obvious difference, the sender/uploader doesn't care
what name is given to the file by the recipient -- unless the sender
wants to refer to it later, such as in subsequent requests for
tracking, deletion, revision, etc.  Along this line of thought,
imagine how many security holes and other expenses would have been
avoided from the outset had Unix offered, instead of the /tmp
heirarchy and similar customs, a variant of fopen() that allowed the
caller to say "Lemme start writing to a private file, but *you*, the
OS, tell *me* how I can refer to it later via some handle".)

Your document really makes this point in many ways, when it talks
about IM2000 as a potential replacement for IMAP (and hence POP3),
which is, IMO, a very pertinent insight (since those are *already*
"pull" protocols), among other things you mention.

If we could pull *that* off -- design and build a "grand unified
information exchange protocol" (GUIXP? ;-) -- then layering an
email-like system on top of it should be a piece of cake, regardless
of whether it's IM2000-like (pull-based), SMTP-like (push-based), or
something in between.

After all, UBE is really just a subset of UBI (Unsolicited Bulk
Information), in the sense that UBI includes spam posted to blog and
other web sites allowing posting of arbitrary anonymous content, as
well as to USENET.  So the fight is really not *just* in the email
arena, and many of the techniques used in that arena have plenty of
applicability elsewhere (and, presumably, vice versa).

And, personally, despite my server being targeted heavily by spammers
(I'm a joe-job victim as well), my "spam problem" doesn't really
strike me as being as difficult to handle as many of my *other*
information-management problems, many of which strike me as being
elegantly solveable by a more-general GUIXP-type system.

If such a system is conceivable, and doable within, say, 20 years, it
might not be worth rolling out IM2000 in its presently-proposed form.

-- 
James Craig Burley
Software Craftsperson
<http://www.jcb-sc.com>