John Chamberlain
Developer Diary
 Developer Diary · You Heard It Here First · Friday 6 February 2004
How to Stop Spam
Spam filtering has gotten out of hand. I have started to get legitimate emails blocked from their destination. In some cases ISPs are blocking all of Comcast, hundreds of thousands of users. Trying to use a hammer to kill flies is not going to work.

Stopping spam is easy in principle by having mail servers only accept connections from trusted clients and using a vote system to decide who is trusted. Here is how it should work:

        - every mail server has an ACL that allows only specific clients to connect to it
        - each mail message has an unguessable ID number that keys to the ACL entry for that client
        - the recipient of a mail message can vote it as spam to the server
        - if a client crosses a threshhold of spam votes it is removed from the ACL
        - client is sent an email being told they are removed
        - client can optionally request being restored to ACL after designated time period
        - trusted mail servers can vote clients to routers
        - trusted routers can query a mail server for its ACL
        - trusted routers can query routers for their SPAM ACL
This simple system only requires a minor modification to the routing and SMTP mail protocols. Once this change was made and compliant mail servers and routers started to appear SPAM would be totally eliminated.

In practical terms this is what would happen:

         (1) Open relay or zombie machine starts to send spam
         (2) SMTP servers receive votes against that client
         (3) SMTP servers vote against the client to routers
         (4) votes accumulate at router(s) closest to relay/zombie
         (5) that closest router stops accepting mail packets from relay/zombie
By using this system the votes would trickle back toward the source of spam and cause it to be cut off at the source.

This system would be relatively easy to implement and totally eliminate spam.

return to John Chamberlain's home · diary index
Developer Diary · about · · bio · Revised 6 February 2004 · Pure Content