« Microsoft vs. Yahoo analysis on Marc Andreessen's blog | Main | Open Source lesson: SpringSource falling from grace »

April 29, 2008

Firefox 3 improves handling of invalid SSL certificates

I have downloaded the beta of Firefox 3 to check out the improvements related to SSL. First, there's the added support for Extended Validation SSL certificates, but I am not very excited about that (I wrote about this previously in Extended Validation SSL certificates not going anywhere, as predicted). It's a nice feature, but it's not going to bring much good overall. On the other hand, I am very happy with the improvements to the handling of invalid SSL certificates.

Firefox 2.x allows users to simply click-through their way to a site that uses an invalid certificate.  There is a warning of some sort, but who reads warnings anyway? (Internet Explorer is not much better in this respect, although at least its warning is very clear about not recommending the user to proceed.)

With Firefox 3.x, the situation is much better. First you get the same style of error response as you would for any other network problem:

Firefox_3_ssl_warning

The beauty of this page is that it does not allow you to proceed to the site. To go through you have to create an exception, which is a multi-step process that you can start by clicking on that link at the bottom. You then get the following:

Firefox_3_ssl_warning_2

Another warning; very good. Clicking the Add Exception... button gives you the form that is used to actually create exceptions. There's a nice final warning on the top of the form, which will hopefully deter those who will be attempting to create an exception for the wrong reasons:

Firefox_3_ssl_warning_3

The changes represent a great step forward, and significantly reduce the likelihood of successful man-in-the-middle attacks. Still, I wouldn't mention exceptions at all on the error page: advanced users will find a way to do what they must, but normal users are better-off not knowing anything about exceptions.

Update (7 May 2008): My request to make hide the functionality to create exceptions from the error page was rejected. It's good to know that the issue was considered, even if the decision is not the one I would have made. Daniel Veditz pointed me to Johnath's blog post, which describes the history behind the new SSL error page. Very interesting.

 

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00e54fd889f2883400e552030a148833

Listed below are links to weblogs that reference Firefox 3 improves handling of invalid SSL certificates:

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

The way Firefox3 handles invalid ssl certificates is just plain stupid. They're losing major usability and it is too damn obscure for a normal user how to "add an exception".

A few days ago, When accessing my univ. web page I got this new invalid ssl certificate page and my girlfriend promptly said "That's odd, I've never seen this page offline".

She's quite tech savvy and I`m sure she'd figure out how to proceed after a few moments. But I doubt the common webbrowsing-only people would ever READ the message and even if they did, they woudn't figure out what the heck is this exception to ssl certification thing is.

This is a large backstep in ease of use IMO.

It's only a large step backwards if you think that Firefox should optimize the experience to the benefit of attackers and broken websites.

If, on the other hand, you think that Firefox should help users make informed decisions about their online safety, then it's a huge step forward.

There are many who, like the author of this post, think that the exception UI should be hidden or go away entirely.

Web sites using invalid certs should be fixed. They're the boy crying wolf so much that users don't notice when the real wolf is at the door. They should be shamed and badgered out of this bad behavior.

In the meantime, while we wait for them to clean up their busted sites, users get real actionable information and a much better warning system for when they are being targeted by the bad guys.

- A

It's a pain in the ass for all websites using CAcert certificates, too. I wrote about this some time ago in my blog.

@Caio,

You should really be angry at your University, because today, when SSL certificates are as cheap as they are, there is really no excuse for a proper site to use an invalid certificate. The issue at stake is the ability to detect man-in-the-middle (MITM) attacks, which occur when someone hijacks the communication channel between you and the site you are visiting. One of the design goals for SSL was to be able to resist such attacks. When an MITM attack takes place, it manifests through an invalid certificates. Thus, in order to understand they are being attacked, the users must be able to differentiate between valid and invalid certificates.

Alex, CAcert has not passed the audit necessary to have its root certificate approved for inclusion in Firefox (or other Gecko-based products). You can see exactly why here: https://bugzilla.mozilla.org/show_bug.cgi?id=215243#c158

- A

If you think this is going to really stop MITM your really misinformed. EV SSL is a better approach but it is still not great. The problem with the Internet is there is no true way to for a user to authenticate properly with a server. (take a XSS attack on a website and load it with malicious script from another website)

Now Firefox is a dog's breakfast for handling SSL websites. It's like Vista - with it's User Announce control. They need to handle trusted sites a lot easier. For internal intranets for companies this is a pain, even breaks sites like google. If you have 1,800 intranet sites in the bank I work for, there is no way they are going to pay for that many certs.

Basically, the bank was going to roll firefox after my years of pushing for a better browser than IE, however, with version 3.0 we have decided that the pain is not worth it.

I am very annoyed, I love good security but this is over the top and users don't know how to do this, so we are training them once again in bad security....Great!

Andrew,

Would you care to explain how one can execute a successful MITM attack without breaking SSL? With Firefox 3, if an MITM attack is executed the site will just break with an error page. Exactly the outcome needed to prevent exploitation. With Firefox 2 the user will simply click through the warning message and fall into the hands of the attacker.

Why doesn't the bank you work for have its own root certificate embedded in all internal browsers? That would allow them to issue their own certificates for free. Sounds like bad planning to me.

Hi Ivan

Would you care to explain how one can execute a successful MITM attack without breaking SSL?
In two ways:
- the most common way it is broken today - from browser hijacks / spyware/ trojan. Is Firefox 3 new SSL processing going to help with that? No. [Better Anti-phishing protection would help a lot more]

- the user is still the weakest link, the user will learn to click through 3 pages then one will bring about the same amount of MITM attacks. [due to a number of their sites they go to not working anymore]

There has only been a 4% decrease of people not entering their passwords from clicking on links in emails. So come on, is Firefox 3 going to stop this No. It's going to make people move to other browsers like Safari. There is a fine line between usability and security, and I think in this case Firefox 3 did not get it right. I think they got it right for EV SSL.

From real life experience, better web url filtering protection is a lot better than standard SSL certificate verification.

As for certificate processing, always hard to get right. Take a look at the code for NSS crypto library 3.12 changes the whole certificate verification code. This will make writing chaining rules easier, but one bug in this could bring Firefox, Thunderbird, etc to it's knees.

Extended Verification Certificates is better approach then doing this UI craziness as it's easy to train users to see changes to the address bar in color that they are at paypal and not paypa1.

As for your point on CA certificates and internal browsers, yeah we have a very detailed internal CA process. Our production servers all use this. However we have development servers, integration servers, etc. For our PKI team to support all these developer domains would be a $3m cost. A lot of cost for rolling out a new browser.

cheers,
andrew

On Usability, the FF3 pages are unreadable for the normal web surfer.

Let me walk you through it, comments inline:

As from above

The certifcate is not trusted because it is self signed
----- how many people know what a self signed certificate is? -------
----- should be the certificate could not be verified by someone you trust ----

The certificate is only valid for Unknown
------ What??? this means nothing for the end user)

(Err code: sec_error_untrusted_issuer)

---- another waste for the end user -----

- This could be a problem with the server's configuration, or it could be someone trying to impersonate the server

---- hmmm, how does the user check for that, should be, something like did you really want to go to the website : , we can't verify that it's authenticate, if you proceed, proceed with caution. Maybe a antiphishing check.

- If you have connected to this server successfully in the past, the error may be temporary, an you can try again later
---- so they come back later and still same problem....they might NEVER get past this point...bad messages again ---


The messages need to be clear to the user, they aren't, they are great for security professionals but not good for users.

I am all for improving security of the Internet, this is just to much knee jerk and not enough thinking. IMHO

cheers,
andrew

Andrew,

What you describe is not breaking SSL, it's finding other ways to intercept the communication channel. To defend against workstation compromise is out of the scope of Firefox, or any browser. Same for phishing through email. I agree with you on the second point, except that my opinion is that Firefox 3 is not doing enough to hide the exception interface from the users.

On the point of usability, I fully agree with you. The message needs to be reworded to hide the technical details and to give clear instructions to the users (to not proceed and to try to contact the web site operator somehow to deal with the problem).

FYI, I've submitted two bugs to the Firefox development team:

Handling of invalid SSL certificates lacks in usability
https://bugzilla.mozilla.org/show_bug.cgi?id=431826

Exceptions for invalid SSL certificates are too easy to add
https://bugzilla.mozilla.org/show_bug.cgi?id=431827

The Firefox 3.0 GUI handling of not validated certificates is the worst example of GUI Interface "dialog" with the user ...

The GUI science is about interpreting human "intention". So, the GUI solution to this problem is simple:

i) Firefox detect a site with not validated certificate
ii) Firefox inform the incident to the user, with a "do you want to know more about certificates and security link?" but a just simple dialog box with two buttons "Add Security Exception", "Cancel navigation to this site"
iii) End of story

KISS !!!

Thanks Ivan, much appreciated!

Ivan, did you see how Mozilla broke all those good efforts with something inherently stupid? See https://blog.startcom.org/?p=86

For all those in need of a legitimate server certificate I invite them over to http://www.startssl.com/ and get them for free. It's an effort we are making for years to provide basic certification without cost and demand is certainly rising even more with the advance of FF3. I hope this helps anybody worried about the new exception handling.

Eddy, you don't do your cause or your business any good by going around bashing Mozilla because your business is threatened by EV.

Oh no, it's not! In that case you must have misunderstood something essential about the issue I mentioned above. Did you read it? Using the site icon (favicon) which is under the control of the web site as the indicator for SSL is an inherent unlucky design decision to say the least!

StartCom isn't threatened by EV, but I can't disclose more about this subject right now. Watch my corner for surprises...

Adding exceptions is singularly difficult to add here. The error page does not give me an option to add an exception.

(Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008052906 Firefox/3.0)

Eddy, I am not happy with the new UI either, especially with the removal of the yellow colour. It's what users have been trained to observe (in all/most browsers); breaking that is only asking for trouble. I've been using FF3 for a while now, and I find it _really_ difficult to know if a site is secure or not.

For me Firefox3 made the web unusable.
Nearly any page uses the selfsigned certificates to provide a https connection.

Most users will change the browser and switch over to disannoying - less secure - browsers like IE.

The consequence of this malicious attack towards the user is, that true firefoxusers like me will head over to FF2 or IE.
Cheers

I run my home gateway and self-signed certificate and I find the FF3's behavior odd. Simply whenever I try to access my site via FF3, I get the familiar warning ending with "or you can add exception" pointing to "javascript:showSecuritySection();".

Clicking on shows additional information "Немојте додавати изузетке ако користите везу којој не верујете у потпуности, или ако нисте навикли да добијате упозорења о овом серверу." Still it doesn't offer any further way of enabling the access to my site intuitively.

Is my browser's behavior any different than yours (due language issues?). Is there another dialogue box that I could use to add exception?

@Nikolas, I too have noticed inconsistencies in how FF3 behaves when it comes to SSL certificates. You may be encountering a bug preventing you to add an exception. I don't have any problems doing that.

On the other hand, just the other day I went to this web site and FF3 complained with a message that said: "Certificate type not approved for application". No further explanations, no option to create an exception. This is a site I used to access normally with FF2.

If I may add to this, on three desktop PC's (XP and Vista) where I have the Serbian version of Firefox installed the problem remains. On my Linux box the FF3 (standard English-US) acts just as you described (allowing me to add exceptions).

[I have just verified all of this again, to make sure there's consistency to its behavior.]

Firefox just broke every home & business internal network that uses CUPS. https://server:631/ :(. Not very good at all.

Additonal:
Now I have to use safari to do the job. What's next, do I have to go back to lynx to manage printers?

Hi, I get the message: An error occurred during a connection to www... SSL peer cannot verify your certificate. (Error code: ssl_error_bad_cert_alert) when I try to connect to ANY URL. The certificate is gone, and now Firefox 3 keeps the name of the website with the bad certificate in the upper left corner of a blank page, ignoring any URLs in the search bar. I cannot get it to accept any addresses. How do I get FF to ignore this website? Thanks, Ray

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

MY WORK

ModSecurity Handbook is the guide to the world's most popular web application firewall.
SSL Labs offers a comprehensive SSL security assessment consisting of 250+ checks. To start, enter your domain name below (it's free):

ABOUT ME

Ivan Ristić is an open source advocate, entrepreneur, writer, programmer and web security specialist. He is the principal author of ModSecurity, the open source web application firewall, and the author of Apache Security, a concise yet comprehensive web security guide for the Apache web server.   [LinkedIn Profile]

My Photo

TWITTER

@ivanristic

    FEEDS