Trusting SSL Certs

The problem of user “click-through” of SSL certificate warnings when connecting to websites using SSL/TLS is an old, well-recognized one. Users have little information with which to make a meaningful trust decision.

I recently visited a Web site where I had to submit reviews, and the connection was HTTPS. Firefox’s new in-browser dialog warning about the risks of an unverified or otherwise broken SSL cert appeared, complaining that the certificate was invalid for a few different reasons, namely that it was not valid for the URL (“3 of 4″ rather than “trust2010.org”), that it was self-signed (not in itself an uncommon situation for these types of paper reviewing sites and other ad-hoc, self-hosted sites), and that it had expired (it was only valid for one month in late 2009). A screenshot of this warning follows:

Firefox Complaining About the Validity of a Certificate

Firefox Complaining About the Validity of a Certificate

I typically tend to add these exceptions after a cursory glance at the certificate information. After all, many sites have some desire to run their own PKI, distribute self-signed certs, be their own CA, or otherwise present certificates that are not signed by one of the existing built-in root certificates in your browser.

The only thing that stopped me from approving the exception was the certificate information, which was so obviously bogus and homemade that I did not want to risk connecting to the site and giving away my log-in credentials. Screenshot of this certificate follows:

The Invalid Certificate Information

The Invalid Certificate Information

Note that had this information been more realistic, I would have had no way to feel suspicion about the certificate. Even if it were revoked or outdated, for the purposes of uploading a few reviews, I might have easily just added the exception and gone on. The moral of the story here is that even experienced users, when presented with credible information, have no way to ascertain the trustworthiness of the information contained in a certificate. So: do certificates need to be active entities and go about proving their provenance to a user in an active manner, such as playing a game, completing a formal proof, or otherwise attesting to some properties known only to the user and the endpoint he is trying to communicate with?

Comments are closed.