Firefox SSL-Certificate Debate Rages On
BobB-nw points out the ever more raucous debate over the way Firefox 3 handles self-signed certificates. The scary browser warnings have affected a number of legitimate sites (such as Google AdWords and LinkedIn) that didn't renew certs in time. Lauren Weinstein loudly called attention to the problem early in July. "If you visit a website with either an expired or a self-signed SSL certificate, Firefox 3 will not show that page at all. Instead it will display an error message... To get past this error page, users have to go through four different steps before they can access the website, which from a usability standpoint is far from ideal. This way of handling websites with expired or self-signed SSL certificates is bound to scare away a lot of inexperienced users, no matter how legitimate the website is."
As long as I get my awesome bar, I'll put up with anything.
Isn't scaring away inexperienced users from sites with questionable security the whole point of those warnings?
I mean a user friendly message that lets someone get past it really easily wouldn't exactly get the job done.
With all the sites out there just looking to steal information from you, and to introduce Cross-Site scripting elements, this is a good idea. I want my browser to warn me when I'm going into uncertain territory. And if a website owner screwed up and did not renew their certs--to hell with them. We're supposed to accept a security risk because they couldn't get off their asses as renew? I don't think so.
Certificates are a usefull tool if used properly. Expired or self-signed certs have no value, one would expect admins to have the minimum awareness (professionalism?) to maintain them correctly? Or is even that too much to ask?
Try going to multiple Linksys devices (WRT54Gs come to mind) with the same self-signed certificate.
This is what you'll see:
You have received an invalid certificate. Please contact the server administrator or email correspondent and give them the following information:
Your certificate contains the same serial number as another certificate issued by the certificate authority. Please get a new certificate containing a unique serial number.
(Error code: sec_error_reused_issuer_and_serial)
You'll only be able to set up an exception for the first one, the rest of them... so sorry so sad... unless you manually dump the certificate each time.
FF2 did not have this "feature", you could set multiple exceptions and not have to worry about it again.
Total PITA if you're working with residential users.
Some days it's just not worth
chewing through my restraints.
If you EVER want to combat man in the middle attacks and phishing sites, this is the best solution. Sites whining that people are being scared away??!? Get a fucking grip, and get a real certificate from a real certificate authority so your users can actually trust you. People/companies are cheap and lazy, and unfortunately this leads to a whole host of problems...keeping your certificate legitimate and up to date should be no different than taking care of your insurance or other critical infrastructure.
Obviously, self signing is meaningless for anonymous strangers. It works just fine for you and your friends/colleagues, but not for anyone outside your immediately trusted group.
What are the free alternatives to VeriSign's hefty fees? Some kind of community effort to create trust, much like PGP key signing seems like it would be a good solution.
Besides being expensive, it looks like any shmo can register with verisign and then conduct all sorts of questionable practices behind their cert. It doesn't look like there's any sort of vetting in the process. I didn't complete the signup process, but it looked like once they had my money, they'd send me a certificate. While the connection is secure, that doesn't tell me a darn thing about what they are going to do with my data, or weather or not they're going to try something malicious.
This one's tricky. You have to use imaginary numbers, like eleventeen... --Hobbes
Fundamentally, the people at fault here are the so-called professionals who allow their certificates to expire. Why should I trust their site's security if they can't manage a simple administration function like that. Thawte and Verisign provide you with enough reminders that your certs are about to expire, so you don't even need to diarise it yourself.
I do have more sympathy with self-signed certificates.There is no excuse for corporates to be using them, but for small, non-profit sites, self-signed is understandable. Mozilla could help this situation by providing support for CACert and similar organisations, by including their signing certs in their browsers, by default.
Conditioning the users to accept self-signed certs is a BAD thing.
I think self-signing is great for HTTP and with SSH-style leap of faith. But self signed is far less useful than a real cert (because even when social engineered, a real cert allows you to say "registrar X f-ed up".) for HTTPS. And conditioning users to accept self-signed certs for HTTPS is a mistake.
Test your net with Netalyzr
This way of handling websites with expired or self-signed SSL certificates is bound to scare away a lot of inexperienced users, no matter how legitimate the website is.
Well that's the point. The certificate is not valid and there is no way to tell the website is legitimate. If one would insist on using TLS/SSL for HTTP with a self-signed certificate, have users install your own CA keys you gave them through another secure channel, or at least let them check the fingerprint. Nobody keeps you from doing that. It's sad that some of these things are so widely misunderstood that it actually reduces privacy and security:
The new behavior of Firefox 3 is not a problem, it's people failing to security-enable their website the right way.
This is a switch of the "Cancel/Allow" Mac/PC ad.
Here we have FF3 saying
"You have tried to access a secure site with a dodgy certificate, Cancel or Allow?"
IE meanwhile troops on regardless giving a better "user experience"
Oh until the machine goes down because the site was a trojan site using a self-signed certificate.
The issue here isn't that Firefox is making this hard, its that ANYONE ever made this easy. If a site has an expired certificate then that would worry me as it implies their IT support is a bit dodgy. If someone wants my credit card details and is using a self-signed certificate then I'm VERY worried.
There are functional issues (the duplicate cert problems of Linksys has been mentioned here) that should be addressed. But the basic problem of warning users very strongly that a site is self-signed or has an expired certificate is a good thing.
I'm using Firefox, I'm on a Mac and this problem just hasn't irritated me the way that Vista does because this does it when there is a REAL problem caused by a 3rd party, not a potential problem caused by me hitting a button. Expired or self-signed certs are a real 3rd party problem, not a scare story.
An Eye for an Eye will make the whole world blind - Gandhi
As a Safari user, i find that reading mainstream media and "security researchers" fucking hurts my head.
First Safari is bad because it doesn't have anti-phishing.
Then FireFox is bad because because it throws a fit on un-signed certificates.
WTF do they all recommend? Exploder?
I guess it all fits with the flow of uneducated American populace, too ignorant to learn to use a computer properly, so "Security Experts" need to be babysitting them.
(for those of you wondering why I use Safari, it's because of its superb in page find feature.)
If you don't know what AltaVista is (was), get off my lawn.
I think FF should just clearly show a warning sign and tell the user that any communication he or she has is encrypted, but that the receiver could be anyone. Therefore the user should not engage in any sensitive communication over this connection such as visiting banks etc.
I feel that there is too much scaremongering going on. Usually programs will tell you, "you are about to do something really dangerous/stupid/embarasing, proceed yes or no?". It is better to inform the user why this is dangerous/stupid/embarasing and let him or her make up their own mind. Otherwise you are just putting the blame on the user for when things go wrong without him/her being able to make an informaed decision. Many users may act less than perfect, but at least give them a chance to understand.
Yes I know that the new FF is much better at informing the user than older browsers where, but it is still too alarmist in my opinion.
What do you think?
She made the willows dance
Let's complain about how easy it is for you to navigate to a malicious page in IE and get malware on your PC.
Seriously people, this isn't a huge deal. Err on the side of security rather than the other side, I would say.
I think Firefox's solution is the best we can hope for. If you or me can get a self-signed cert, a phishing site author certainly can. Then all of a sudden if Firefox were to accept self-signed certs, phishing sites over HTTPS look legitimate, and they look the same as every other HTTPS site that shelled out $$$ to get their certs signed by a trusted root authority. Hell it doesn't even cost $$$, there are a few root authorities that'll sign certs for free, and one is accepted by Firefox (I forget the name). So that's always an option. If you don't like adding exceptions to your own pages, get on Google and figure out how to fix it!
SSL Certificate hijacking is a real issue so it should not be underestimated. Users should not be able to just dismiss a warning dialog like they can do with IE. However I do think self signed certs shouldn't be discriminated this way. Learn more with presentation #11 here:
http://www.securitypresentations.com/#11
Before all the security fanatics start telling everyone to "just spend ten bucks on a cert"...
1. Embedded appliances (you know, the hundreds of millions of routers, firewalls, etc.) cannot use an authority cert. The choice is between self-signed and no encryption only, and Firefox is pushing manufacturers towards the less secure option.
2. Typically, you first encounter a self-signed cert in a secure context (for example, setting up such an appliance by plugging it directly into your PC and visiting the web interface). After that, all you care about is whether the cert changes. The whole man-in-the-middle thing is NOT a guaranteed problem with self-signed certs.
3. Real cert authorities are not the invulnerable swiss banks everyone thinks they are. They can and have issued certs when they shouldn't have. And that isn't just new certs; last week there was a story about a Firefox-trusted cert authority that issued a Microsoft live.com domain cert to someone. So those who think authority certs are secure are deluding themselves.
In the end, Firefox's current behavior does not promote security; it simply makes life hard and annoying for legitimate users.
I'm going to assume that there is a sizable minority here who doesn't actually understand what is going on with SSL certificates and why they are important. So here goes:
Assume you're trying to access your online bank, and that Dr Evil is your ISP's systems admin (or anyone else who can get between you and your bank).
In the normal course of things, your web browser makes an SSL connection to your bank, validates the certificate is signed by one of the certificate authorities that your browser trusts and you're good to go.
The certificate authority check is there to prevent Dr. Evil from setting up a server in between you and your bank. In that scenario, you would connect to Dr Evil, get his key, encrypt your username and password using his key. Dr Evil then decodes the user/password and sends it onto the bank in another connection. Then he bridges the two connections, walks off with your password and you're none the wiser.
Because of SSL certificates, if Dr Evil did try it, you'd get the nasty certificate warning, and hopefully not give Dr Evil your banking passwords.
Min
On the whole, I find that I prefer Slashdot posts to twitter ones because I don't get limited to 140 chars before
which is the problem here.
FF2 had a warning message about self-signed certificates, too. The problem in my opinion is the way it is presented, and how the "exception" thing is handled from a user perspective.
In FF2, you simply had to accept the certificate, and "go" for it. So far so good. Warning message, "OK, I know what I'm doing".
Downside: anyone just klicks "yes" in ANY message, so where's the security in that?
Anyway, with the new scheme, it's simply annoying, even if you know what you are doing. I.e. I need to use some development installations of software for testing purposes, and of course, whe have to test the ssl-encrypted parts, too. Buying certificates for all this development setups would be stupid (like, throwing the money out of the window).
Why do I have to click FOUR times to simply say "this site is OK for me", while I only have to click once for popups, for auto-fillin for login data, and so on?
Just one simple "add an exception" that does the trick WITHOUT forcing me to:
- *manually* (!!!) FETCH and DISPLAY the certificate before I can accept it (hell, I KNOW it's valid, I generated it myself! And a "normal user" can't understand ANYTHING in the certificate details, so what's the point? And no, they won't "learn", either!) ...
- yes, I'm sure, I want an exception
- yes, for real, I
amen. The error message seems to be designed for people who know about these things, not mom and pop users.
Mom and pop users should never, ever go to a website with self-signed or expired certs. It's true that there a lot of legitimate sites that fit the category, it might even be true that most of the self-signed sites are legit. The problem is that mom and pop users are not savvy enough to distrust anything, unless there's a big fat warning there.
Firefox 3 allows you to permanently accept those certificates. If you're computer literate enough to know about these things, you whitelist those sites. If you're a mom and pop user, you call a tech savvy family member / friend / neighbor / neighbor's kid to vouch the site for you and whitelist it.
What the heck is wrong with mozilla? Everybody knows convenience of web developers is more important than actually making the whole SSL stuff worth it. Who cares if allowing sites to sign their own certificates makes the whole SSL thing extremely pointless? What's important here is the webmasters' comfort.
Copyright infringement is "piracy" in the same way DRM is "consumer rape"
Shikaku pointed out further up that there's StartSSL... FF3 accepted their certificate fine when I visited (although, honestly, other than a very quick visit to their page, I haven't really looked at it - perhaps the free certificates they offer aren't accepted... no idea)
My book about LSD and Self-Discovery
Also on facebook as: DroppingAcidDaleBewan
when i criticized it and said it will hurt a lot of small businesses and communities, some people came up with darwinian shit like 'if they are not able to afford a $100 buck a year ssl, they dont deserve to be on the internet anyway'.
and look now, even the biggest can be affected by this overzealous, self righteous implementation in ff3, not only small businesses and communities who are 'so easily forfeitable'.
i wonder what those people have to say now.
Read radical news here
I know using actual evidence is unfashionable, but lets try connecting to a self-signed https page from some popular browsers, shall we?
Firefox 3
Secure Connection Failed
phishing.itsdapead.org uses an invalid security certificate.
The certificate is not trusted because the issuer certificate is unknown.
The certificate is only valid for mycomputer.itsdapead.com
[Or you can add an exception]
Internet explorer 7:
There is a problem with this website's security certificate.
The security certificate presented by this website was not issued by a trusted certificate authority.
The security certificate presented by this website was issued for a different website's address.
Security certificate problems may indicate an attempt to fool you or intercept any data you send to the server.
We recommend that you close this webpage and do not continue to this website.
Click here to close this webpage.
Continue to this website (not recommended).
Or Safari 3:
The certificate for this website was signed by an unknown certifying authority. You might be connecting to a website that is pretending to be "phishing.itsdapead.org" which could put your confidential information at risk. Would you like to connect to the website anyway?
How about Opera 9.5?
The server's certificate chain is incomplete, and the signer(s) are not registered. Accept?
[Help] [Reject] [Approve]
Sorry, I don't believe that - Opera is meant to be good isn't it? Let's try again: (ahem) Opera 9.5?
The server's certificate chain is incomplete, and the signer(s) are not registered. Accept?
[Help] [Reject] [Approve]
Ye gods - I wasn't imagining it! Deary, deary me...
Now, from where I'm standing:
Plus, Firefox is pushing the extended info scheme whereby the certificate holder's name gets displayed on the info bar (as opposed to the old scheme where ploughing through the certificate might reveal the holder's name), which should be a good thing.
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
OR it will force users back to IE. No, really: imagine you're the webmaster. If you use a self-signed cert and your user can't connect and asks for help, what will you do? Buy a cert? Why? Give advice? Sure, but users won't follow even three steps if it "looks complicated". Simplest option is to say "Use IE". Great, we're back to where WWW has been a few years before - creating a niche for which you "have to" use IE anyway, so why switch.
FF is shooting itself in the foot. Especially with self-signed certs - expired ones should be treated much less kindly, but this is too much even in this case.
Another example of idealistic but misguided approach to security - Opera mail client + SSL/TLS. For oh-so-many versions I've been MAD about one thing: every time I started Opera I got a warning that certificates for two mail servers at work had a short RSA key - half of suggested length. No way to say "I know, but I'm not the admin and the ticket got a WONTFIX (until it expires), so stop bugging me already"! I was getting more and more irritated, until finally Opera won. I turned off SSL completely. I switched from hoping that I'm not interesting enough for anybody to try to hack a less-than-suggested encrypted connection to hoping that I'm not interesting enough to snoop on at all. Is THAT better? I think they finally understood the problem, as the newest version allowed me to install the certificate and ignore the short key.
Make sure that your users can tell a really secure connection from an unsecure one. Make that lock icon more visible, or make a big lock symbol flash on the screen for a moment (maybe over the menu so that JavaScript can't simulate it) after establishing a connection. Do everything to make people expect certain behaviour from a secure site and notice when it doesn't happen. But blocking content because you think it's not secure only makes sense if you're consistent and block the completely unencrypted connections as well. Can't do that? So don't do it at all.
Do you even know what SSL is for?
Do you?
There are many scenarios involving semi-sensitive data (access to some collaboration website, access to services only supporting basic HTTP authentication etc) where a signed certificate is an overkill.
In these cases a self-signed cert and SSL surely won't protect your data from a malicious web server. However SSL will do a great job protecting your data as they travel to get there. Without SSL, someone with access to any intermediate router can get your data with a plain tcpdump.
Of the hash of a self-signed certificate should be confirmed by a side-channel. Otherwise a MITM attack is possible. But even with the hash uncofirmed, how many people you know that are able to launch a MITM attack?
PS: Do you use self-signed certificate for the ssh server of your linux box/server? If yes, why do you even bother using ssh? You would do fine with telnet in the first place.
Self-signed certs are not always "poor security practices". Consider, for example, devices like the ubiquitous Linksys broadband routers. They support ssl connections for administration, which is probably a good idea (tm).
But signed certs require a domain name, and cost real money (typically $100/year), which is probably a little much for a home user who just wants the extra security on their LAN. So self-signed certs are perfectly reasonable for uses like that.
I stole this sig from someone cleverer than me.
Let's say we're walking down the sidewalk and you see two people walking towards you.
Person 1: Average Joe, mid 20's, wearing t-shirt and jeans. Clean-shaven. Your assessment: Seems OK.
Person 2: Guy wearing a cheap cop costume, waving around a gun. Your assessment: ??? ("Hmm, well, he's trying to look like a cop, so it must be ok!")
I'm not in favor of the way Firefox chooses to handle the situation (I think it's overkill) but "Ignore it and hope nothing bad happens!" is exactly how companies don't bother to discover encryption until after their really important laptop gets stolen. Personally, rather than going with the tiny little bar at the top (that looks exactly like every other little bar I get on every single website since I don't have flash installed), I think Firefox should show a solid red page with a heading indicating that it cannot verify the website below automatically, with a link to learn more about fingerprints and such, a button to say you trust this website (adds this cert for this domain to the list of trusted sites), and inside that page with a 20px margin, have the actual website load in what would effectively be an iframe, so you can see the website immediately, and you get a nice bright red border around the website, so you know that something is up, and that something is different than every other little warning you've gotten.
If I have been able to see further than others, it is because I bought a pair of binoculars.
* Hint: If they are really scared of the self-signed certificates, why do they have the "Permanently store this exception" box checked by default?
That's the one part that makes some amount of sense. It lets the browser really complain if the cert changes (of course, who's going to notice the difference, since it complains so loudly about unsigned certs in the first place...), which should only happen if someone's trying to MitM your connection or if the admin is an idiot and deleted the cert file.
If you visit a website with either an expired or a self-signed SSL certificate, Firefox 3 will prevent the page from loading, to protect your secure cookies and personal info from what may be a malicious page. Instead it will display a warning... To get past this warning page, users have to go through four different steps before they can be understood to have declared intent to accept the possible consequences, which from a usability standpoint is far from ideal - the users are much more accustomed to signing their death warrants by pressing a single 'Allow' button, so multiple steps for an extremely rare security warning is heretical. This way of handling websites with expired or self-signed SSL certificates is bound to scare away a lot of inexperienced users, who, with their extensive knowledge of cryptography and public key infrastructure, really need not be intimidated with facts and scary words.
This is quite obviously a debate among morons. I'm glad firefox is doing it right.
"Strangers have the best candy" -Me
Is the right thing for my browser to do to tell me that my own webserver on localhost is untrusted, while companies that engage in practices like typosquatting and domain tasting are unquestionably trustworthy? I don't fucking think so.
self-signed certs don't prevent prying eyes in the slightest.
Of course they do.
I installed self-signed certificates on several of my services. I know the fingerprints. I verified the fingerprints in my browser. If the certificates change I'll get an ugly warning.
Where's your attack on this setup?
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)