My previous solution to spam detailed in another entry was based upon how I, as a service-oriented technical architect, naturally approach such problems. Having had a bit of a think about it, and a bit of enlightenment about how money isn't the only currency (CPU time, etc. also are in a way), I've come up with a new zero-infrastructure solution:
- A plugin is developed for mail clients such as Outlook, Eudora, etc. This is installed on all client machines
- This plugin is activated whenever an item is sent. It takes a subset of:
- The sender's e-mail address
- The recipient's e-mail address
- The subject line
- The date-time stamp
- Using this data, it computes some mathematically intensive function that results in a value. This should take a few seconds (of background processing) to compute. This function doesn't involve public/private keys - it would be a freely available algorithm that simply takes in the order of 2 seconds to come up with a value.
- This value is appended to the outgoing mail as a header - this is the signature
- --- The mail is transmitted and received by the client ---
- A plugin exists in the client's mail-reader that intercepts this header
- The function chosen for the computation must allow the "correctness" of the value to be determined within a fraction of a second rather than several seconds (there are formulae like this - I just can't remember them). Again, this algorithm would be freely available
- The validity of the header determines the validity of the e-mail
Rather than creating the signature/validating at the client, certain mail-servers could do this - both inbound and potentially outbound (from certain trusted servers). Individual users could set up rules as to whether or not they accept unsigned mails.
Why's this solution good?
Basically, it's realistically free for everyone and requires no infrastructure. If there's one thing that all the file-sharing applications have proven, it's that de-centralised peer-to-peer systems can thrive. In terms of implementation, this solution would take minimal time to be developed as a plugin for mail clients - the triviality will lend itself to freeware implementations, leading to mail clients including it in the long term. The fact that an e-mail takes an extra few seconds to send in the background wouldn't affect a normal user, but it would make sending signed bulk-mailings prohibitively expensive. For companies that send genuine bulk mail-shots, they could just be added to an allow-list on an ad-hoc basis (i.e. when you sign up to a mailing list).
Thoughts?