> to save $15, uses a self-signed certificate.
Valid SSL can be had from StartSSL for no charge. Money is not the issue, it's browsers completely flipping their shit at a self-signed.
> How does my browser know if I've agreed with your server for a key, or with the man-in-the-middle proxy I've transparently been redirected to?
It doesn't. Which is why, quoting myself and adding emphasis:
> if I offer a self-signed certificate, perhaps the better UI experience would be to inform the user in that "Page Info" that their connection is encrypted, but they have no idea if the other end is who they say they are
This is the function of the big red warning, but it's the implementation of that very warning that I disagree with. However, the traffic in between you and the other end (the other end that you cannot verify, remember) is still encrypted from completely unrelated third parties, so there is still a negligible benefit.
It limits "opened Wireshark and watched you work" to "need to know specifically what I'm after and generate a certificate and poison DNS and ..." A self-signed alone raises the barrier to entry at Starbucks significantly from "really, really easy" to "need to reconnoiter the target and have significant control over the network".
The distinction you're trying to draw between "attacks that can be carried out with Wireshark" and "attacks that can be carried out with Wireshark and a Perl script" aren't meaningful to me, so I'm obviously the wrong person to try to persuade you about this. Sorry for wasting your time.
I don't see why it's a meaningless distinction. To pull off a MITM, you need quite a bit more than a Perl script, and you're pretty much not going to do it on a network that you do not control. I'm speaking from a basic knowledge of networking theory (I've unintentionally avoided dark arts), so I'm willing to be corrected if I'm wrong.
That's the value I see: I don't think I'm going to walk into Starbucks with Perl and successfully MITM even my theoretical browser that doesn't care about self-signed certificates. The value is that in that scenario, even a self-signed makes reading traffic that doesn't belong to you harder.
I'm here to discuss, though, and I'm willing to learn; don't give up so easily.
These are not theoretical attacks. Any 16 year old with a $300 netbook can download software written by others and perform these attacks at your local Starbucks in a few hours. They would be able to see all traffic (even https) and without self-signed warnings the only outward sign would be the lack of the green url bar associated with EV certs.
Meanwhile, the proxy attack is the gold standard on the actual Internet we all use. Sniffers are obsolete.
Tell me this. How does my browser know if I've agreed with your server for a key, or with the man-in-the-middle proxy I've transparently been redirected to?