Re: Comments on IM2000
James Craig Burley <[email protected]> 5 May 2005 06:46:50 -0000
| Newsgroups | gmane.mail.im2000 |
|---|---|
| Message-ID | <[email protected]> |
>On Wed, Apr 20, 2005 at 06:01:19PM -0000, James Craig Burley wrote: >> I think this presents a *huge* problem for blacklists, because >> spammers can easily dDOS them by sending out bazillions of >> notifications containing arbitrary sender-account IDs "tupled" with >> otherwise-legit mail stores. > >Sure, any blacklist is subject to that kind of attack. Blacklists which run >on top of the DNS benefit from distributed caching. I've previously posted, at some length, about the dangers of relying on distributed (DNS-style) caching as an effective solution to the problem of giving attackers direct ability to trigger database lookups (and especially inserts) based on arbitrary keys. (IMO, distributed DNS-style caching is to this sort of attack as more CPU and RAM are to a brute-force implementation of an NP-complete problem such as TSP as the problem sizes increase.) >Dealing with junk notifications is one of the problems I have with the >IM2000 approach. Even without blacklists, you will need to validate them >somehow (e.g. by doing a callback to the originating message store, or by >some cryptographic method). You don't want a blast of fake notifications to >drown out legitimate ones. Yup. >With SMTP you can of course open large volumes of SMTP connections to hosts. >This may trigger some sort of validation process (RBL lookup, sender >verification callback etc). I think the trick is to keep to a minimum the >amount of work which a random attacker can cause the system he/she is >talking to (and any referenced third party) to perform. Yup. A key insight, I think, is that *most* attacks are designed to cause a recipient to read spammer's mail. That is, they are rarely designed to cripple the ability of a recipient's system to *receive* email. Instead, attacks are directed at components of the system upon which a recipient system might rely to distinguish welcome from unwelcome email (that is, to designate UBE). Therefore, it seems best to try to design any email system such that the receiving system relies as little as possible on external entities, especially third parties, to decide whether to accept, or how to prioritize, incoming email. IM2000 clearly violates this design goal. That doesn't mean it's fatally flawed; it just means a whole lot of thought and effort must go into protecting those third parties (mail stores, blacklists, etc.), since they'll be easy to attack without necessarily destroying the ability of recipients to read email under normal circumstances. >> My SMTP server does nothing but log those, and does only *internal* >> lookups on domain names in envelope senders. (I use no RBLs, >> amazingly enough, out of a sorta-principled desire to experiment with >> anti-UBE measures that don't let untrusted SMTP clients use my server >> as a proxy to beat up external shared DBs. Pretty much the only >> useful "key" that a spammer can't forge is the incoming IP address of >> the SMTP client -- but I don't do any external lookups on that either, >> at the moment.) > >That's a shame. You ought to try RBLs, because they are surprisingly >effective even in the current SMTP world, and to evaluate how blacklisting >through DNS works in practice. I don't question that. "Everyone else" uses RBLs. So I don't think I have a whole lot more to learn, and therefore to add to the pool of expertise, by using them. (My priority isn't so much to *stop* UBE coming into my system as to *study* it. Secondarily, I want to slow it spreading to other systems down by actually letting more of it enter my system without bothering me, personally, or anyone else.) >One notification generates one callback or lookup, so it's not a DoS >amplification service. The spammer won't actually achieve anything, since >the notification will be discarded having failed validation, so there isn't >anything to be gained. Yup. If there's a protocol by which a 3rd party can say "you've sent me too many misdirected callback/lookup requests, please throttle it down", that might be helpful. >> It's also not clear exactly how IM2000 will prevent spamming by >> sending notifications such as: >> >> [im2000.comcast.net, [email protected]] >> >> Seems to me such spam might be fairly successful in an IM2000 world, >> unless sender addresses are normally hidden from users, which is not >> what you appear to be advocating. > >I did suggest that (sender fingerprints), but I think it's better that the >sender address *is* a genuine E-mail address, and that the notification is >discarded unless it is proved that this notification did originate from that >E-mail address. That gives phishing protection too. I tend to agree. In fact, *personally*, I really don't mind seeing short spammy messages in notifications, as long as I can quickly skim and skip them, and as long as I'm aware they didn't consume much in the way of my system's resources to receive them. I think most users would also be willing to live with that. (The spammier the notification, the more certainly I know to not bother reading the message that accompanies it.) This leaves the problem of phishing, but it might actually be easier to teach people that "messages" themselves do *not* actually, or legitimately, arrive as *notifications* themselves -- that notifications should *only* tell them about the existence of messages. (In short, there are to be no email equivalents to postcards, where the message is written on the outside of the "envelope". Or, perhaps the equivalent to a postcard could be expressly designed into the system, as it does have utility as a concept, as long as users are easily able to understand the implications of sending and receiving messages in that form.) >> With SMTP, it's easy for a spammer to have his SMTP client do: >> >> MAIL FROM:<[email protected]> >> RCPT TO:<[email protected]> >> DATA >> [...] >> . > >Errm, but the recipient address won't exist, so there will be a 550 error >after the RCPT command, and the DATA command will be rejected. Whoops, good catch! Lemme try that again: MAIL FROM:<[email protected]> RCPT TO:<[email protected]> DATA [...] . Does that make more sense? I'm not sure how any useful email system blocks such messages, and I'm not really sure *why* it should. Especially as standalone IM2000-style notifications, it seems like a case of diminishing returns to try to erect a defense against ordinary users seeing ones like this such that they actually try to visit the web site in question. ("Overhead" and "bandwidth" cease to be valid concerns when such notifications are so cheap and easy to send to legit mailboxes. If too many spammers send them at once, end users will quickly tire of them, never do the hand-copy-paste-edit thing into their browser, and the market value of such spam will plummet. If spammers send such spam to too many spamtraps, their source IPs will be easily blocked and pending notifications from them safely and easily dropped. All of this applies to SMTP email as well, except that unless something like greylisting is used, the recipient's system has to receive the message contents even if the end user would choose to skip reading it.) >> Some people will respond by "blacklisting" my tuple in their personal >> lists. > >No, clearly you cannot blacklist a notification based only on the >(potentially forged) information it contains. Whew, okay, but I hope *everyone* (who might implement or admin IM2000) gets that point! >You could however blacklist notification sources based on their IP address. Which takes us back to where we are right now, since we can (and do) do that now...? >There may be people sending notifications from dynamic IP addresses, but >that's unlikely; legitimate IM2000 message stores will be on fixed IPs, and >the notifications will *normally* come from the message store itself. Right. I'm still wrapping my head around IM2000's potential architectures and designs. >However, the IM2000 protocol explicitly allows notifications to be >forwarded, which is a useful capability. More than useful: critical. It's not clear IM2000 will fly if it doesn't do full-blown relaying a la SMTP, but certainly the notifications themselves need to be relayable. >That's why I think it's probably better to validate notifications to prove >they came from the claimed message store (and discard them if not), rather >than maintain a separate IP-based blacklist of spurious notification >senders. Ah, okay. >Spurious notifications are unlikely to be sent often, since they don't >achieve anything apart from a waste of resources, so I think it's unwise to >build a separate infrastructure to filter them out, one which won't be >tested very often. In essence, a notification becomes a handshake between a message store and a recipient (agent). That could be handled solely via a TCP connection a la SMTP, in which case the client's IP address can't be (easily) forged. >> In any case, that'll swamp im2000.comcast.net such that it can't serve >> *any* email, and there'll be nothing Comcast, nor recipients, can do >> about it. > >For each one notification message sent (TCP connection), the recipient will >open one TCP connection to im2000.comcast.net Might as well have im2000.comcast.net itself notify via TCP connection to the recipient? What is gained by waiting for the recipient to decide to try to validate the sender, if we're assuming recipients will always want to do so? Oh, well, one thing: when recipients trust the sending IP, for example, then there's no need for a validation, so no need for anything other than an incoming UDP packet containing a notification. (And maybe a UDP packet in return saying "got it", so no further notifications need be sent?) This is getting down below the level of detail we need to understand the ramifications, I tend to think. You seem to understand the need to minimize amplification, so I'm less worried about it being a problem in any system you design (or vet). >The attacker could just open those connections herself, and apply a similar >kind of DoS anyway. However, this approach *does* hide the source of the >attacker. > >Perhaps, when contacting im2000.comcast.net, the validation request should >include the purported source IP address of the notification? Clearly this >could be forged too, but if you get a lot of notifications from people all >over the Internet and they all claim to have received notifications from the >same IP, you have good evidence of the source of the attack. Yup. I've long (and I mean for *decades*) assumed this kind of automated determination of trustability based on sufficient numbers of *reasonably* trusted neighbors would be necessary for goodness to thrive and evil to be vanquished on a hostile global network. >As I say, this attack won't achieve anything (such as the delivery of a >spam), only wasted resources - so eventually the attacker is likely to get >tired. But I do agree with you that this needs to be considered carefully, >and the best solution arrived at such that this approach is at least no more >efficient than DoS'ing the message store directly. We're definitely on the same page here. >> So, the "win" for IM2000 here is that spam can't be forged as coming >> from someone else and still be delivered as spam. >> >> The "loss" is that IM2000 pretty much requires the same sort of >> "doublecheck" that people used to do with SMTP, when a server would >> try to contact the envelope sender for untrusted email and see if >> *his* SMTP server would VRFY that the address existed or accept a >> bounce sent to that address (going as far as MAIL FROM:<> and RCPT >> TO:<address> and checking the response, before discontinuing the >> conversation). > >Except that at the moment, an SMTP callback only verifies that the address >exists, not that the mail you're trying to receive was sent by that person. Well, yes, but what I was referring to was that such callbacks were considered highly annoying by (sysadmins for) victims of joe jobs, weren't they? IM2000 can (and IMO will) make them *cheaper*, but will they be cheap *enough* to be sure *all* sysadmins will find such callbacks, which appear to be intrinsic to a deployable IM2000 (*replacing* SMTP), acceptable? (I have to phrase these as *questions*, since that episode apparently predates my awareness of how SMTP works, my experience as an SMTP server admin, etc. I've only read some short descriptions of it.) >> Though IM2000 gives us the opportunity to improve the performance of >> that sort of doublecheck, it does so only on a scalar basis (let's say >> it makes it 10x more efficient), whereas spammers will have plenty of >> incentive to ramp up attacks on certain popular, trusted mailstores at >> a much higher rate than the performance is improved by IM2000. > >Maybe. People do DDoS attacks on all kind of Internet infrastructure, for >all kinds of reasons. It's a pain, but you're not going to fix that without >fixing the Internet itself. The main problem, besides widespread lack of upstream propagation of filtering rules in our infrastructure, is when packets coming in from a given IP address represent an arbitrary *mix* of "good" and "bad". If IM2000 implies callbacks on all message notifications, then it implies spammers can attack the callback mechanism *directly* by sending spurious notifications to a large-bandwidth site, with such notifications purporting to be from a small-bandwidth site. Once the small site is drowned by the large site's overwhelming stream of callbacks, such that it either ignores (or responds negatively or positively to) *all* callback notifications or tells the large site to stop sending notifications for awhile, the spammers have either succeeding at DDoS'ing all IM2000 email sent from the small to the large site, or at getting the large site to accept *any* IM2000 email sent to the large site and *purporting* to be from the small site. This is why I actually *want* an infrastructure that encourages email to be sent directly from even dynamic-IP hosts (like laptops) to their recipients, with as few intermediaries as possible, and without relying on callbacks to validate email. (When I think "callback" I think "potential blowback". I want to be *sure* that the former can't be turned into the latter.) >> Amusingly, I've recently started receiving spam that advertises its >> products via ASCII art, including the phrase "BEST PRICES"! ;-) > >Cool. You can't accuse them of lack of imagination. It's another reason why >(IMHO) content analysis will always be doomed, until we have genuinely >intelligent robots. And if they are that intelligent, they will wonder why >they are doing this job in the first place. "Filter my spam, Marvin" - >"Brain the size of a planet and they ask me to filter out spam..." Heh. Or, content analysis can decide it can't understand the content sufficiently and return it to sender (somehow) with a message "please express this succinctly, in plaintext [English|French|Klingon]". >> I tend to think the biggest problem with SMTP is really the fact that >> it (normally) prevents a server from accepting a message without also >> accepting *responsibility* for that message -- which translates into >> the need for generating a bounce. > >That's pretty much essential in a store-and-forward model though. In the >current world, all MUAs are set up to send outbound mail via a >store-and-forward server (and indeed, blacklists are set up to *refuse* mail >sent directly from end-user IP addresses, so replacing MUAs with something >cleverer which followed MX records in the DNS would not work) > >Once you've handed the message over to the S&F server for delivery, if it >fails, it needs some way to tell you so. That need not be in another E-mail >message, but if not then there's an out-of-band notification required; and >to prevent this channel from being used for spamming, it needs to be >unforgeable. Right. Though, my dynamic-IP host actually tries sending directly first, and automatically falls back to my upstream ISP's SMTP server only if that fails (in certain ways). (I wrote the patch that makes qmail-remote work that way. It became pretty popular among some qmail users in boats a lot like mine. It's comforting to see most of my outgoing messages go directly to the MX for a recipient, in my mail logs, instead of always going upstream to a relay, at which point my ability to track delivery status evaporates.) Anyway, what if *responsibility* does not accompany relaying as you describe? In that case, the MUA can't expect a bounce or DSN to ever come back in case of failure (or success). Which is pretty much just as well, from a design point of view, because DSNs on *successful* delivery aren't really working well enough in SMTP to be useful; waiting as much as two weeks for a bounce that might never arrive is not a reliable way to be sure an important message actually reached the destination; the infrastructure to allow bounces to be sent back is expensive, as we've been discussing; and when that infrastructure isn't working, even a successfully-delivered message can't result in a DSN announcing that success. Instead, what if the MUA periodically contacted the recipient (or the same store-and-forward, or upstream, relay) and asked it "how is delivery of that message progressing?". It would have to allow not only for answers equivalent to the 2xy/4xy/5xy responses we presently have, but for "it appears to have been lost, please resend", since the MUA would have responsibility for that message. That would *eliminate*, by design, the *need* for any sort of callback system (although one could still be provided, and used on an as-needed, optional basis). Add (to a mythical new system a la IM2000) a more reliable way to detect and eliminate duplicate message deliveries, and an MUA can handle "important" deliveries by simultaneously delivering an email to its upstream relay *and* the ultimate destination, in case the connection to one or the other times out, or the delivery fails or is rejected on one side or the other, before the laptop running the MUA is disconnected or powered off. On the other end, as the duplicate is detected and eliminated, it could be noted that it appeared to have been *legitimately* duplicated in order to indicate importance to the *sender* and, perhaps, prioritized accordingly for the recipient. (If you receive the same message via two routes, one of which is direct from a dynamic IP host and the other is via a trusted relay, you can be pretty sure it's a legit message even if you've never heard from the sender before.) On the other hand, a site-wide receiving agent might notice a ton of *similar* messages sent to all sorts of addresses for which it is responsible -- including spamtraps -- all containing URLs like enl4rg3y3r0rg4n.example.com. In that case, it could assign all those messages very *low* priority for all its recipients. Or it could just delete the messages and remember that the originator sent what appears to be UBE. (Remember, it wouldn't have accepted *responsibility* for those messages; just the notifications and the contents. So it can just "drop" messages.) Meanwhile, without accepting responsibility, all incoming-email servers are able to accept messages without ever sync()'ing them to disk, among other way cool stuff. There would need to be substantial changes in email infrastructure throughout to properly support such a system. As it happens, many similar improvements have to be made to properly support IM2000. >> >But if I can only reliably blacklist on IP address, I am limited when it >> >comes to shared mail relays at ISPs. If 1 million users are all relaying >> >through one ISP's mail relay (a common case), plus 10 spammers, I either >> >have to blacklist the entire mail relay and suffer collateral damage, or I >> >have to accept the spam. >> >> Right, I understand all that. But that is simply a Very Hard Problem >> anyway; as I pointed out earlier, even the "hotpop"-like ads in the >> headers of otherwise-legit email could be defined as "spam". > >Ah well, then you have a single E-mail with a split personality: part >legitimate, part spam. If you dislike it sufficiently, then you can refuse >to communicate with that person, or ask them to use a less obnoxious E-mail >service. It's an extreme case of the mixed-source problem I mentioned earlier, so it is illustrative, yet insoluble in the general case. (Whether a reader considers the non-spammy part of the message sufficiently worthwhile to have to see the spammy part is *purely* an end-user decision. Nothing short of pure AI can reliably and correctly make that decision; even human beings can't make it, in some cases, until long after they've read the message.) That is, to the extent we (say, IM2000 enthusiasts) assume we're going to move to a few, "trusted", intermediaries for exchanging email -- whether those intermediaries are IM2000 mailstores or SMTP relays -- we have to accept that there *will* be a mix, tolerable to some but not all, of advertising accompanying messages coming from some or all of those intermediaries. It helps me remember to doubt any "promise" that anyone makes that some new system, filter, whatever, will "eliminate spam", because I'll always remember to say "what, exactly, *is* spam, and how is that system or filter sure it'll eliminate only what *I* consider to be spam?". IM2000 and, I believe, ecrulisting or something along those lines, both really promise only to make the "B" part of the "UBE" sufficiently more costly, relative to the "E" part, that genuine spam becomes much less prevalent. (No proposals, of which I'm aware, truly deal with the "U" aspect of "UBE", even though techniques like whitelisting and greylisting touch on it.) >> And, as I point out above, if you resort to blacklisting [mailstore, >> senderID] tuples of "known spammers" at otherwise-legit mailstores, >> you either: >> >> - Overload the blacklist(s) you're using with all the spurious >> senderID's that spammers can make up, or >> >> - Overload the mailstore(s) with requests to validate whether any >> given senderID a spammer might invent actually has a legit account >> there (equivalent to SMTP VRFY or RCPT TO) > >I don't see that *necessarily* follows, nor that the overloading you're >proposing is any worse than a direct DoS attack from the spammer to the >message store or to the blacklist. A direct DoS attack is *also* a way to overload any central blacklist. That's why it's unwise for a SMTP server to *rely* on any external blacklist to accept incoming email, unless it can afford to not receive incoming email. But with a traditional DoS, a blacklist server can presumably block all packets coming from a particular IP or IP range for the duration of the DoS, and still serve requests from other portions of the 'net. To really do damage, a spammer needs a DDoS -- an attack coming from all sorts of 0wned machines all over the 'net. But even *these* machines can be detected and blocked by the blacklist owner as, over time, the pattern of the DDoS becomes distinguishable from the pattern of requests from legitimate sources. Requests regarding blacklisting from *legitimate* sources, however, can be used to DDoS the blacklist provider in ways that *it* cannot possibly resist, without becoming useless *as* a blacklist provider. For IP-based BLs, this is somewhat mitigated by the fact that the space of potential IPs is limited, and once a blacklist knows an IP address is a source of bad requests, it can tell its clients to blacklist that source *entirely*, meaning it won't even see incoming *notifications* from such sources. IM2000-based blacklisting would have to get pretty involved to be able to do stuff like that. E.g.: - 0wned machine stuffs spam into message store - Store notifies recipient - Recipient asks blacklist about [store, sender] combo - Blacklist detects attempt to DDoS it via such requests, so gets IP address of 0wned machine from recipient somehow - Blacklist suggests store not accept further notifications from recipient for a period of time - In meantime, blacklist stops adding anything to its data base regarding [store, *] notifications originating from 0wned machine I'm not saying it ain't possible. I *am* seriously suggesting it's *so* intricate that we might as well do *half* this much work to make SMTP work just as well, if not better, than IM2000 might work even in a "perfect world" of 100% deployment without worrying about coexisting with SMTP. Keep in mind that once you design callbacks into a system, you essentially turn *every* system that sends email into a sort of blacklist server, since it must accept and deal with callbacks, which in turn are used to deny acceptance of forged email from spammers. Therefore, *any* such system is potentially a target for attack just as would be any of *today's* blacklist servers. I am really, really worried about rolling out any design that makes ordinary servers (like mine) targets of DDoS-like attacks by spammers via *legitimate* hosts. >> This problem could be mitigated by insisting that outgoing message >> notifications go *through* (and thus be vetted by) mail stores, so >> only "legit" email addresses are exported. >> >> But that can be done for SMTP anyway, and in fact is done, sorta >> kinda, in various ways. E.g. some ISPs deny ordinary users outgoing >> TCP connections over port 25; filter incoming connections to their >> internal SMTP servers to ensure MAIL FROM:<whatever> identifies an >> addy the customer (identified by incoming internal IP address) >> actually owns; provide AUTH access for external use by legit >> customers; etc. > >It can be done, but in general it isn't. This is the line of reasoning you use to which I most object. "Can be done but isn't" => "*IM2000* can be done but isn't". Sysadmins and the suits who make the decisions aren't looking for a whole new system to roll out. They're looking for *incremental* improvements to the current one. What is it about IM2000 that makes any of us think it'll be the "killer app" that replaces SMTP? That's what I think this discussion really boils down to, beyond the (IMO highly useful) overview of various email issues. (This discussion almost belongs on a metalist discussing various potential and existing messaging systems, but I don't know of any offhand.) >Outgoing relays would have to >become more complex to perform AUTH database lookups, and huge customer >bases would have to be migrated over to using SMTP AUTH. Only when the last >customer has switched to using SMTP AUTH, and relaying by source IP address >only is disabled, can the source be considered 'trustworthy'. > >And then there's the problem of which E-mail addresses a particular user is >allowed to use; either many local databases will have to be built, or one >distributed one. > >As an example, I login to smtp.example.net as user "foo123", and then I want >to send outgoing mail with MAIL FROM:<[email protected]>. > >Either: >(1) The ISP maintains a local list which ties foo123 <=> [email protected] >Every time a new user comes along, they will have to state which E-mail >addresses their account is allowed to use, *and* prove to the ISP's >satisfaction that they do in fact own those accounts. This isn't a problem if the envelope sender is required to be [email protected]. If it can be anything arbitrary, then IM2000 will have similar problems, correct? >(2) There is a global database. As owner of [email protected], I ask the >pobox.com domain owner to publish information in the DNS which ties > [foo123, smtp.example.net] to my address, SPF-style. >There are problems with this if the ISP decides to change their >infrastructure, such that outgoing mail starts appearing from a different >machine or IP address. This would invalidate the policy. I don't quite see how IM2000 makes this any easier. >(3) The ISP rejects all mail from me unless it has >MAIL FROM:<[email protected]>. This is unacceptable for lots of reasons: >- This may be a temporary account, e.g. at a cybercafe; I will need to > receive bounces after I have left that location. IM2000 eliminates bounces, but only *after* SMTP is basically eliminated from the Internet. Until then, IM2000 will have the same basic problem: a message store will have to validate whatever *arbitrary* sender address is assigned to a user's outgoing message, or worry that the user might send joe jobs. Even once bounces are eliminated, how does an IM2000 *sender* actually know whether an outgoing message has been received, if she's moved on from her cybercafe? Same problem: either use a consistent address, or "log on" to the same mail store via something akin to AUTH and require the message store to validate against a list of legitimate sending addresses. >- I may be sending a bounce (MAIL FROM:<>) This gets into the whole issue of whether it's acceptable for IM2000 to not provide a way for a recipient to send back a corresponding automatic notification of some sort to a sender. But I believe that bounces are the biggest problem with SMTP anyway, which is why I suggest we move away from them, one way or another (by moving to IM2000, by slowly moving towards something like ecrulisting if it's feasible, or by moving to a new push-based, bounce-free system). >- There are many legitimate reasons for using variable envelope senders; > e.g. I may be sending using VERP, SES, SRS or BATV envelopes. I don't know BATV offhand, but the rest strike me as kludges to work around SMTP's built-in limitations. IM2000 doesn't appear to solve the problems requiring VERP, though it certainly changes the landscape (possibly so much that we can't recognize the new problems it'd introduce). SES and SRS are, I believe, obviated by IM2000, at least in an SMTP-free world. I don't know what BATV is offhand -- "Bounce And Tell Vinnie"?. ;-) >Anyone who did this would break all their users, and yet there would be >little benefit unless the *whole* Internet did it (which will never happen >even if this were decided to be 'best practice') I don't quite buy that argument. The first part of it is true for adopting IM2000 anyway. With regard to the second, it seems to me that it can be up to each "trusted" relay to decide whether and how best to validate users that submit messages to/through it. For example, there's not really *that* much difficulty, as far as I can see, in having a relay handling 1M users not only validate their outgoing envelope senders against some list, but allow those senders to be VERP-encoded to boot. >Seriously, changing to something different (maybe IM2000, maybe not) would >be easier. You can have a phased migration. Over time, you would give more >credence to your new mail and less to SMTP mail. I'm not convinced it'd be easier to change to IM2000, though perhaps to something different. As to giving "more credence" to messages sent via the new system, that general capability (of prioritizing messages for recipients based on various criteria) is necessary for my ecrulisting proposal. It's going to be necessary for IM2000 anyway, so we might as well take advantage of it and try it out within the current SMTP infrastructure (which ecrulisting exploits, without really committing any particular portion of the SMTP world to use or accommodate it, as it coexists with existing standards and *most* practices). >> >IM2000 also wins because it's easy to build message stores which rate-limit >> >the number of messages sent per day from a particular account; it could be >> >enforced as good practice (i.e. if you offer free signups for new accounts >> >over the web, then you get your message store blacklisted if you don't >> >follow this principle) >> >> I'm not sure why that's hard for SMTP -- aren't some ISPs doing that >> already? > >Because >- mail relays generally don't have an unambiguous indication of *who* the > person is sending through them (without SMTP AUTH, or some sort of > callback into a RADIUS accounting system) Huh? Source IP isn't enough to disambiguate a paying customer? Or do you want to include roaming users? What does IM2000, or any new system, offer that makes this a non-issue? >- mail relays are typically built in clusters, so in order to count the > number of messages sent by a particular user in a particular period of > time, you would need to use a central database See below, where this is revisited. >...[forcing the world to adopt SMTP AUTH]... >> >However, this ain't going to happen. The pain is huge, and the short-term >> >gain is negligible. >> >> How will the equivalent *not* have to happen with IM2000? > >You can start setting people up on IM2000, and include gateways to SMTP >(inbound and outbound). > >People can immediately see which mail has come in through IM2000, and which >through SMTP. They can use this to make value judgements on their mail. It >would particularly benefit closed user groups (e.g. companies, groups of >friends) where they know the other party is on IM2000, as it means these >identities would be forged if they come in via SMTP. > >You can apply more stringent filters on SMTP mail. As more and more of your >correspondents are on IM2000, the less worried you are about false positives >on SMTP. For granny who only wants to communicate with grandchildren, SMTP >could be disabled entirely for that account. > >Over time, though, IM2000 becomes less and less of a "closed user group" of >course. Actually, I think a mail replacement architecture should explicitly >support the idea of closed user groups. And possibly instant messaging too. Wait, wasn't SMTP AUTH described here as a way for a legit client to deposit an email on a widely trusted relay? What I'm asking is, how does a legit IM2000 client deposit an email on a widely trusted mailstore with something a lot like AUTH? >> Okay, then this is not a case of *technical* advocacy, more a case of >> saying "it's a whole new system, we think it'll be fairly spam-free >> compared to SMTP" -- and in fact it probably will for some time -- and >> hoping to convince enough early adopters to jump on board, quickly >> enough, that everybody else, except spammers, switches soon after. > >No, if I believed that then I wouldn't suggest it. > >Any new solution has to be a *permanently* harder environment for spammers >and fraudsters to work in. I think there are some strong arguments why >IM2000 could have an anti-spam infrastructure which works much better and at >much lower cost (of complexity and false positives) than SMTP, which I >documented in my comments on the web. Indeed. That's what got this discussion started. My concern is that IM2000 isn't *enough* permanently harder, and has an excessively high built-in failure rate for *legit* email due to its additional points of failure, to justify the expense of rollout. I've already identified a few ways in which SMTP can (and in some ways already does) offer what you identify as IM2000's advantages. One clear example where SMTP does *not* do so is your item 2f (IIRC). In particular, there's no way in SMTP for a server to respond to a notification of a message with something meaning "please relay that through one of the following servers: ...". That would be quite useful. The fact that an IM2000 recipient can simply toss a notification to a trusted 3rd party so *it* can pull up the message is, IMO, a *big* advantage to IM2000. I haven't yet gone over all your items in such detail. So I'm not convinced either way; IM2000 might indeed have just enough in its advantage to justify rollout. >Furthermore, if there is better evidence of where the spam came from, then >anti-spamming laws might be more effective. Yup, this is why item 2f is such a big win for me. Instead of recipients of spam forwarding (possibly forged) spam to a government agency, imagine how much cleaner the system would be if (IM2000) recipients simply forwarded *notifications*, allowing the agency to retrieve the *contents*, which, of course, couldn't be claimed to be forged without implication the agency *itself*. (Of course, said government agency would employ its own army of 0wned machines, or their equivalent, so a spammer's mail store would have a much harder time responding differently to a knock on its door by the email equivalent of a 'narc. ;-) >> IM2000 ultimately puts us in the position of hoping not just that this >> will be required *less* often, as a % of overall email sent, but that >> the economics will ultimate in spammers giving up and going away. >> >> I'm not seeing a clear case being made for that scenario coming to >> pass, certainly not clearly enough such that it justifies the >> deployment of IM2000 as it now stands. > >Well, maybe we have to build it and see. As well as writing IM2000, we write >an IM2000 spam-sending toolset and publish it too, to check that things work >as we expect. Hey, I was hesitating about bringing that up anywhere, but it might actually be worth deploying *free* spam-sending software widely and publically, in order to help knock the profitability out from under the UBE industry. Of course, it would be a risk taken under the assumption that the world will be able to deal with the results. Kinda like governments giving away various drugs in order to knock the profitability out from under the illegal drug trade. >> So IM2000 gives spammers a *guaranteed* weapon to use against DNS and >> blacklists that SMTP doesn't assure them > >It's the same point - DoS is DoS. It doesn't really gain them anything more >than a direct DoS assault on whatever it is they're trying to attack. Again, I'm not so sure. I *think* it's easier to block a direct DoS than a DDoS, and, in turn, easier to block a DDoS than a coordinated attack where all the requests are coming from legit sources. And, again, I hesitate to fundamentally denote each and every host that sends legitimate email as a key component in a global blacklist and, therefore, a target for spammers. >> >But it's still not going to be as strong. For example, counting the number >> >of mails sent by a particular user is still quite hard. Consider an SMTP >> >relay cluster of 10 machines; they would need to communicate with a central >> >database to count the number of mails sent by one user over 24 hours. >> >> How is that different from an IM2000 mailstore cluster of 10 machines? > >Most likely each user would have an account on a single machine in the >cluster, and you'd spread your users across them. Then it's easy. > >But even if you decided to have a cluster with a shared NFS backend, and >users could connect to any of those 10 machines to submit a new mail: all >you need to do is maintain a state file within the users' mailstore area >giving a history of sent mail. Each new submission adds to that history, and >may cause a threshold to be reached. > >This is unlike SMTP, where there is no permanent record of mails passing >through the system, and all outbound mails are lumped into a single queue, >not a separate queue for each user. I'm not sure how this differs *fundamentally* from IM2000, except the ISP has to expect to hold lots more outgoing messages in its queue than otherwise. After all, an outgoing SMTP queue *can* be structured so it is per-user. (I'm not sure an IM2000 mail store has to be so structured, offhand, by the way.) I still think this is a minor implementation issue on the SMTP side, but maybe someone who *knows* big-iron SMTP-relay implementations can chime in. >> >And you'll still need a new blacklist infrastructure for looking up >> >[IP,auth-sender] instead of just IP address. >> >> Sounds like item 2a on your web page! Again, how is it different? > >That's the point. Moving to a parallel SMTP world would be pretty much as >difficult as switching to IM2000. Um...except we already *have* SMTP AUTH client and server software deployed, etc....? >> What it suggests is that SMTP could evolve to incorporate IM2000 >> concepts in ways that *allow*, but don't *require*, clients and >> servers to cooperatively use them. > >I'm happy to see specific proposals here, and as you're no doubt aware, a >lot of work is going on already. > >The trouble with greylisting by giving a 4xx response after the DATA phase >(or unceremoniously dropping the connection) is that there are plenty of >broken MTAs out there which are likely to treat this is a permanent >rejection. > >Like SPF, you may end up breaking more than you fix. Indeed. IM2000 (or any similarly "new" system) has the advantage of unceremoniously dumping all *previously* broken software. Hopefully, it won't come with lots of *new* broken implementations. ;-/ I also wonder if maybe it's better to just continue to incrementally improve SMTP and, just as you suggest recipients might "favor" IM2000 email over SMTP email, they would favor newer, conforming SMTP clients over broken ones, while still allowing (most) email to get through from broken ones via whitelisting, specialized bridges, etc. >> But I prefer to *conceptualize* in terms of a brand-new, clean system, >> and then *actualize* in terms of incrementally improving SMTP in that >> direction, in order to speed uptake of whatever I might think is >> useful. > >Well, that's reasonable enough. But the extended SMTP may look not very much >like SMTP by the time the job's done :-) Right. >Ultimately, I believe a new messages store with an SMTP gateway would >probably end up being easier to build *and* easier to interwork with the >rest of the Internet... and it could deliver tangible benefits immediately. I tend to think so as well, especially if we are indeed heading towards a world with fewer, more-trusted, relays/stores. On the other side of the equation, I personally hold out hope for a more distributed, jungle-like world of clients injecting email directly into recipient's systems (via their servers), since I believe that, in the long run, that's a more robust model for a mode of communication that *has* to be robust to be useful. There's no question SMTP's long history of bodges makes my hoped-for outcome much more problematic under the current SMTP model, so the best course of action to try it out might be to offer free, incremental improvements to the SMTP world in the form of new, better implementations that recognize each others' capabilities in the form of protocol improvements (the usual EHLO and new-verb combo, mainly). Or, the mess of SMTP bodges might justify designing and rolling out a system that is completely new, like IM2000, but is push-based, like SMTP, yet bounce-free, like IM2000, because it employs tracking, like FedEx, yet leaves responsibility delivery with the sender a la the end-to-end principle, like TCP. Whew. Maybe I ought to just stop talking and design either or both of the systems *I* envision, and offer it as a sort of low-level, nuts-and-bolts way for sysadmins to communicate with each other about problems with higher-level layers of the 'net (including, potentially, IM2000 ;-). Then, leave it up to fate to decide whether "sysadmins" come to include ordinary people using home PCs, blackberries, etc., and whether it's worth bridging it with classic SMTP. Whaddya think? -- James Craig Burley Software Craftsperson <http://www.jcb-sc.com>