I had an idea I think could significantly reduce spam everywhere and thought I'd run it by this group to see how many reasons people might come up with why it might not work. It probably would require an extension of SMTP, but it should be a fairly simple one. It could be deployed gradually with no impact on existing systems. Its effectiveness would grow along with the rate of deployment. The main benefit is to filter messages from senders who spoof the sender address. In a nutshell here it is:
When an originating server receives a request to send a message from one of its known clients, it would calculate a cryptographic hash (i.e. MD5 or some such) over the message body, including any attachments, and save it in a table along with a time stamp. The hash would not have to remain long in the table once the message has been sent, so storage requirements should be minimal. It then processes and sends the message as usual. When the recipient server receives a message it calculates the same hash value in the same way. It then makes a request to the ostensible sending server, i.e. the one indicated in the header as originally intended by SMTP, asking to validate the hash. The hash is included in the request. If the originating server does not yet implement the verification extension it will respond with an error indicating that it does not recognize the request. If the originating server does implement the verification extension it will check its hash table for a match with the hash from the requestor, and return a response indicating whether a match was found. The recipient server then makes a disposition in one of three cases:
1) The apparent sender does not implement the new protocol; keep the message.
2) The actual sender had the requested hash in its table; keep the message.
3) The apparent sender did not have the requested hash in its table; discard the message.
If the message was retained after this check the server would then apply any other spam filters and black-list checks as it otherwise would. After a configurable time each message hash would be flushed from the sender's table. As more servers update to the protocol extension it would become increasingly difficult to spoof a return address. Eventually most messages with false return addresses would get discarded by the recipient server, and the recipient client would never see them.
So that's it. Ok. I'm ready to catch the spears now.
--
Phil Mattison
Ohmikron Corp.
480-722-9595 ext 1
602-820-9452 mobile