9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: David Presotto <presotto@closedmind.org>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] re: spam filtering fs
Date: Sun,  7 Sep 2003 08:35:59 -0400	[thread overview]
Message-ID: <46abee0349bc972af8d87c15a1815507@plan9.bell-labs.com> (raw)
In-Reply-To: <200309070156.h871ucj14201@augusta.math.psu.edu>

[-- Attachment #1: Type: text/plain, Size: 1333 bytes --]

You're going to have to derive a canonical form of the message
so that you have something to sha1 that won't change as it
traverses the network.  Not hard, just need a definition.
Something that includes the important headers (From:,
Sender:, Reply-to:) and the body would be enough.  You
might want to worry about making cr-lf == lf.

Then you need a way to add the signature.  I'm happy with an
S/MIME attachment but some people here hate S/MIME.

Then you need a database of shared keys.  If it were public
key encryption, you could put the public half on a shared
server but since these are secrets, we have to keep them to
ourselves somewhere.

Finally, you need a way to introduce yourself to someone and
give them a token.  This is always the hard part.  PGP sort
of solves it with trusted places to leave the public key
and by passing notes that are fingerprints of the public keys.
Of course, the easier you make this, the easier it is for the
spammers to insert themselves.

Anyways, by the time you're done, you've defined PGP.  Why not
use PGP?  If you're trying to be simple, you don't need their
encryption (which hardly anyone uses anyways) or their complicated
rules for trust relationships.  Then you have exactly what
you're asking for and you stay compatible with some part of
the world.

[-- Attachment #2: Type: message/rfc822, Size: 5080 bytes --]

From: Dan Cross <cross@math.psu.edu>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] re: spam filtering fs
Date: Sat, 06 Sep 2003 21:56:38 -0400
Message-ID: <200309070156.h871ucj14201@augusta.math.psu.edu>

Dave wrote:
> I'ld rather not have to keep a secret and a counter for everyone I want to
> exchange mail with.  Messages get lost and reordered so at the very least
> I need to accept some range of possible sha1ings.  I also want to accept
> mail from people I haven't talked to before but have proved to someone else
> that they aren't spammers.  I'm happier with the /mail idea than this one.

Then I reiterate my second suggestion:

[...]  Or, and even simpler, take the token and sha it with the
contents of the message.  The token itself doesn't show up in any
archives anywhere, and the scheme is immune to problems with bounces
getting sequence numbers out of whack, and you get some modicum of
integrity checking on the message itself.  A way around the client
problem is to build it into the MTA (but the MTA's on both sides have
to support it).

An alternative to this is to provide a nonce in the SMTP transaction or
in header, and the result of the HMAC of the nonce keyedwith the secret
shared between client and sender.  We've already started doing things
like this with the ESMTP AUTH stuff; MAL FROM: now has an ``AUTH''
parameter that can be hung off of it.  We could add a NONCE field,
too.  RCPT TO: can take an AUTHSIG or something, which is some sort of
signature on the nonce value.  We could add an RFC822 style header
called `Integrity: ' that contained the base64 encoding of both the
nonce and the signature in the form, <algo>:<data> (where <algo> is
the hashing algorithm used for the HMAC construction).

Ron had written:
> yeah but ... I don't even want the data coming into my machine. Is that
> covered too? I really want to get these spammers rejected instantly,
> which is why i liked the file system idea.

[Note: I really enjoyed Geoff's colorful description of the spam
problem subsequent to my reply to this....]

I've been thinking about this, and come to some conclusions.  First,
that one has to do whatever it is one decides to do within the context
of SMTP or ESMTP.  While importing a filesystem would be a nice,
elegant solution, it's just not realistic.  And the reason is that it's
not us that's the problem, but everyone else, and everyone else is
firmly mired in the religion of the Internet, which says that SMTP is
the one true way to do mail.  So, sucky though the protocol is, if you
want to do something that has real impact in the next one to two years,
you have to do it within the context of the pre-existing theology.  I
don't like it, but there it is.

Anyway, given that, I really think the simplest way is to do is to
append some sort of signature to a email in the SMTP transaction, but
it doesn't have to be nearly as complex as PGP or S/MIME; something
simpler is going to raise the bar sufficiently to thwart a lot of
the spammers forever.  Just doing an HMAC of a nonce, keyed with a
shared token, is going to stop a lot of the garbage that currently
filters through.

	- Dan C.

  parent reply	other threads:[~2003-09-07 12:35 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1270037699@snellwilcox.com>
2003-09-01 15:45 ` steve.simon
2003-09-02  1:43   ` ron minnich
2003-09-02  1:53     ` boyd, rounin
2003-09-02  1:58       ` ron minnich
2003-09-02  2:04         ` Skip Tavakkolian
2003-09-02  2:15           ` boyd, rounin
2003-09-02  2:12         ` boyd, rounin
2003-09-02  2:00     ` boyd, rounin
2003-09-02 13:56     ` Eric Grosse
2003-09-02 16:08       ` Dan Cross
2003-09-02 21:28         ` boyd, rounin
2003-09-02 22:16         ` david presotto
2003-09-02 22:36           ` ron minnich
2003-09-03  0:59             ` Dan Cross
2003-09-03  1:50               ` Geoff Collyer
2003-09-03  3:35                 ` Micah Stetson
2003-09-03 12:43                   ` boyd, rounin
2003-09-03 12:41                 ` boyd, rounin
2003-09-03  5:48               ` david presotto
2003-09-07  1:56                 ` Dan Cross
2003-09-07  4:04                   ` ron minnich
2003-09-07  5:34                     ` Dan Cross
2003-09-07  8:51                       ` boyd, rounin
2003-09-07 19:34                         ` ron minnich
2003-09-07 12:35                   ` David Presotto [this message]
2003-09-07 19:05                     ` Dan Cross
2003-09-07 20:15                       ` boyd, rounin
2003-09-08  2:22                       ` Geoff Collyer
2003-09-08  5:21                         ` Lucio De Re
2003-09-08  9:45                           ` boyd, rounin
2003-09-03 12:37               ` boyd, rounin
2003-09-03 14:09                 ` matt
2003-09-03 13:42                   ` Russ Cox
2003-09-03 16:21                     ` Dan Cross
2003-09-03  7:38         ` Fco.J.Ballesteros
2003-09-03  7:59       ` Lucio De Re
2003-09-03  8:24         ` Fco.J.Ballesteros
2003-09-03 12:03         ` boyd, rounin
2003-09-03 19:54           ` David Presotto
2003-09-03 21:26             ` boyd, rounin
2003-09-04  5:42             ` Lucio De Re
2003-09-04  6:15               ` George Michaelson
2003-09-04  6:10                 ` Lucio De Re
2003-09-04  6:31                   ` George Michaelson
2003-09-04 14:07                   ` ron minnich
2003-09-03 14:27         ` ron minnich
2003-09-02 15:57     ` Dan Cross
2003-09-01 20:31 matt
2003-09-03  9:13 lucio
2003-09-03 10:09 ` Lyndon Nerenberg
2003-09-03 12:25 ` boyd, rounin
2003-09-04  4:57   ` Lucio De Re
2003-09-05  1:43     ` boyd, rounin
2003-09-05  1:52       ` David Presotto
2003-09-05  2:17         ` boyd, rounin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46abee0349bc972af8d87c15a1815507@plan9.bell-labs.com \
    --to=presotto@closedmind.org \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).