To clarify this a little, in case anyone isn't familiar, to send an email message programmatically, you basically just send a string with some headers and body content to the email server. Here are what the headers look like:
Date: Sat, 13 Jun 2009 06:53:06 -0400
From: Mail Delivery Subsystem <MAILER-DAEMON>
Message-Id: <200906131053.n5DAr2Nv025105@jclinux>
To: <root@jclinux>
To change the sender, all you'd need to do is change the from line. For example: From: Steve Jobs <[email protected]>
A default sendmail implementation will deliver that message all day. Email headers should never be used for authentication.http://en.wikipedia.org/wiki/DKIM
As far as I understand it, you can't fake being an SMTP server sending mail from such a domain because their emails get signed with a private key whose matching public key is published by DNS.
• If you can break DNS, you can get an NXDOMAIN reply, making recipients think there aren't any domainkeys
• If the domainkey private key is small, you can factor it. There's an article on HN's frontpage right now about this.
• If the server uses domainkeys, but it doesn't specifically verify the From: header, an attacker can still forge a message if they share a popular mail provider with their target. I don't know if this is still practical.
• Stupidity. DKIM is difficult to test, and as a security measure it would need to be tested.
An autoreponse confirmation would be immune to all of these attacks and would be trivial to implement correctly.
That doesn't sound like "works 99% of the time" to me, that sounds like an epic fail.
EDIT: It appears that this was more of a configuration issue, so the above only applies if you set up your account this way.
Edit: What they should really do is obfuscate the posting email addresses a little. Make my posting email [email protected], and give me the option to change it to something else if I am coming under attack.
It's certainly and extra step that takes away from the smooth flowing process already set in place, though.
Usually, Posterous catches this stuff and sends an email asking you to confirm that you really are you. They analyze the headers more closely than just looking at the name. For some reason, this didn't work in this case.
Edit: dcurtis edited his comment. Originally he claimed there was some kind of secret algorithm that prevents spoofing.
Access to a message or a mailing list post by them won't provide any further advantage.
"We had a specific problem with the way we dealt with SPF records. Dustin didn't set any up, and there was a specific way that Robin Duckett's email server responded that caused us to flag it as a false negative for spoofing."
So, having access to the blog owner's email headers would not have provided any additional advantage to the intruder.
It's ridiculously easy to forge email headers. Headers are manually created whenever programmatically sending email messages. That's how messages can be sent from addresses that don't exist, like [email protected] or [email protected]. They don't even send a confirmation email that you have to approve before stuff is posted?