User interface changes in some newer browsers have gotten some in the security community riled up. The issue is self-signed certificates. Some folks don’t like users being told that their roll-your-own certificates aren’t as good as the non-free ones. But the fact is that they aren’t as good, especially when the overall population of users of web browsers is considered.
The https:// in a web address means that the web server has an SSL digital certificate, and this does 2 things for you. First, communications between you and the web server are encrypted (the certificate is used to construct the private key for the encryption). Second, the certificate contains an identity which is presented to the browser user; the user can look at this identity and decide if it is the right one for the web site and if it is trustworthy.
The tools to make these certificates are free and anyone can make a certificate that says they are “Citicorp, Inc. New York, NY”, so how are you supposed to know the difference? The answer is in trusted certificate authorities. Web browsers (and other software, such as Windows itself) come with embedded lists of these trusted CAs and their public keys. The idea is that these CAs, before they issue a certificate to an entity, check to see if that entity is in fact the company or individual it purports to be. Thus the CA is vouching for the identity of the holder of the certificate
When a certificate comes along the browser sees if it was signed by, and therefore issued by, one of the trusted CAs. If it is, then things are cool. If not, then nobody is vouching for the identity. Because the Internet is full of lying, thieving no-goodniks browser authors have decided that such certificates deserve a special level of scrutiny.
Internet Explorer 7 and Opera 9.51 both react to such a page with a warning that the page’s certificate is not quite right and that such a certificate is sometimes used by malicious pages in order to trick the user. They ask if you want to continue and, if you do, you are allowed to go to the page. Internet Explorer makes the address bar red for the page and puts “Certificate Error” in the right-hand part of it.
Firefox, on the other hand, shows a much more urgent warning with much more technical stuff thrown at the user. If the user wishes to go on to the web page they can’t just go there, they first have to create an exception rule, a multi-step process which includes many more warnings.
For a demonstration of how this works in the 3 web browsers see our Slide Show: Browsers And Unsigned Certificates.
Is Mozillas Policy Bad for the Web?
Nat Tuck doesn’t like this and thinks it’s actually bad for the web. He makes allusions to net neutrality arguments and says that Mozilla’s policy is not open. Tuck figures that he knows what he’s getting with such a site and, while it may be worth putting up an informational message showing that the sites “could not be authenticated” there should be nothing to impede the user’s progress toward that page. Tuck doesn’t seem like the kind of guy who would ever have tried Internet Explorer, but in principle he seems to object even to its less intrusive warning.
Tuck has gotten some support in the blogosphere; A Slashdot thread on it got 800-something comments, with much agreement to varying degrees. I think most of the reaction has focused on the fact that the overwhelming majority of users, unlike Tuck, don’t know what they are getting and need to have their hands held. Even if it is more “open” to let self-signed certs through, it’s better that users have phishing protection, and that protection is harder if you don’t trust certificate authorities.
CAs are not 100% trustworthy of course. They make mistakes now and then, such as giving certificates to malware authors. In many cases merely confirming that the owner of the cert is who they claim to be doesn’t do anything. Sure, if the owner is “PayPal Inc. (US)” then most of us know who and what they are. If the owner is “HyperGlobalMegaNet Inc.” then is it? Who are they? Are they trustworthy? The real value though, comes when the self-signed certificate says that the owner is “PayPal Inc. (US)”. In that case, anti-phishing protection clearly can call shenanigans on it and tell the user there’s a problem.
But more generally about self-signed certificates, the issue is that nobody is vouching for the identity. Browser authors have made the policy decision that identity is a big issue and it really can’t be checked with self-signed certs. As Michael Barrett of PayPal says, “…in the case of self-signed certificates it’s almost impossible to see how any technology can disambiguate between legitimate uses and criminal ones.”
I totally agree with Barrett, but I’m going to agree a little with Tuck as well: Firefox goes completely overboard here. They don’t just warn you about the dangers of self-signed certs, they nag you about them. Over and over again. Internet Explorer 7’s approach seems much more reasonable, especially since they keep a warning up there while you’re using the site.
We’ve already seen that Firefox 3.1, in the works for a while now, will make some important changes, and I think toning down the self-signed certificate process would be a fair one.
Security Center Editor Larry Seltzer has worked in and written about the computer industry since 1983.
For insights on security coverage around the Web, take a look at eWEEK.com Security Center Editor Larry Seltzer’s blog Cheap Hack.