Mozilla SSL policy bad for the Web

Posted by Nat Tuck
Thu, 31 Jul 2008 23:08:00 GMT

Mozilla Firefox 3 limits usable encrypted (SSL) web sites to those who are willing to pay money to one of their approved digital certificate vendors. This policy is bad for the web. Not only does it make users less secure overall by reducing the number of encrypted connections, it damages the basic principle of equality among web participants.

The problem is this: When a Firefox 3 user visits an encrypted web site with a self-signed certificate or a certificate signed by an unapproved (new or non-profit) provider, Firefox doesn’t show the page. Instead, it shows a scary "you are being hacked"-style warning that requires 4 clicks and an "add an exception" dialog box to bypass.

The warning looks like this:

This behavior means that a public web site basically can’t be encrypted unless they are willing to pay an approved vendor a yearly fee for a certificate. This has two effects: First, some sites are forced to pay for certificates that they otherwise wouldn’t have bought. Second, some sites are forced to go without encryption that they otherwise would have had.

SSL has two effects: First, it allows connections to be encrypted so they can’t be snooped. Second, it allows sites to be authenticated so they can’t be impersonated.

Proponents of Mozilla’s policy tend to ignore the first effect and focus on the second effect - correctly stating that a self-signed certificate has no value for authenticating a web site (unless the certificate is authenticated out-of-band by hand). This ignores the value of simple encryption. Snooping a connection (i.e. on a wireless link) is much easier than any of the impersonation attacks that SSL authentication prevents.

Now, it’s an interesting question as to exactly what the user interface should show for a self-signed website. Obviously it shouldn’t show a green address bar like the new (extra high price, major corporation only) EV certificates. But there is absolutely no excuse for it to be significanly less inviting to a normal user than an unencrypted site.

This is really an issue of the basic principles of internet openness. Everyone has equal access to the features of HTTP or SSH, there’s no reason why there should be artifical constraints on access to HTTPS. But that’s exactly what the Firefox SSL behavior does.

For bandwidth, the basic princple of internet equality is called Network Neutrality. When ISPs have threatened it, suggesting that Google (for example) should pay them for "fast lane" preferred treatment at the expense of smaller internet participants, there has been a massive uproar from those who value this principle of equality.

There should be an equally massive uproar about Mozilla’s SSL policy. Encrypted connections may not be as immediately visible as poor quality streaming video or VoIP sound quality, but it’s similarly important. Dividing the web into a "fast lane" of commercial entities willing to pay and a "slow lane" of hobbyists and non-profits who get unusable service is bad for the internet in either case.

Mozilla is Free/Open Source. Antifeatures like the SSL policy shouldn’t be a problem - users can simply remove them if they’re bothered that much. Unfortunately, that’s not good enough in this case. A webmaster doesn’t just need his web browser to work correctly, he needs the web browser of every site visitor to work correctly.

For this problem to be solved, the most popular F/OSS browser(s) must accept self-signed certificates. If Mozilla is unwilling to change their policies, it would be worth the effort of trying to create a *more popular* fork with full SSL functionality.

A comment on Slashdot complained that I was ranting with no solution. So here’s one of the many possible solutions to this problem:

Mozilla could change the Firefox UI so that sites with unknown certificates (self signed + unknown CA) had a white title bar, no lock icon anywhere, and a yellow info bar at the top "This site cannot be authenticated…". Clicking on the info bar would bring up a dialog where that certificate could be added to a "known certificates" list. If a known certificate later changed, Firefox would give a more serious SSH style warning.