Allowing users to click past security warnings is a really bad idea. How is a user supposed to know the difference between untrusted because of SHA-1 deprecation and untrusted because of a MITM?
Allowing users to click past security warnings is a really bad idea. How is a user supposed to know the difference between untrusted because of SHA-1 deprecation and untrusted because of a MITM?
Forgetting this leads to wonderful issues like the eight year old dupe certificate bug: https://bugzilla.mozilla.org/show_bug.cgi?id=435013
When people visit TLS URLs, they're asking the browser to establish a TLS connection. When attackers make that impossible, it's the job of the browser to refuse, on the user's behalf, to downgrade to an insecure connection.
It should be the browser's job to inform the user if it can't meet Mozilla's definition of security, but if accessing the information is more important at the time, it needs to get out of the way with an override and honor the intention of retrieving the information.
How many of them were a result of a pretty blatant configuration error? Things like self signed certs on personal/toy sites, T+1d expiration, subdomains using the main domain's cert (or vice versa), bad local clock, things like that that?
How many of them were ambiguous?
How many of them were unmistakably fishy?
If your breakdown is anything like mine, it'll be 9/1/0.
I speak of intent because the original person I replied to suggested that security warnings should not be dismissable. I vehemently disagree, because it is my decision to make whether accessing the information I clicked on is more or less important than the risks for the particular class of cert problem that presented itself.
Hide it behind an about:config variable or explicit cert trusting or something else, I don't care. That is still superior to telling me that I can't access something for my own protection.
In fact: apart from the sheer ugliness and cryptographic ass-backwardness of the protocol itself, this is my biggest problem with DNSSEC: it takes the exact same set of failure modes and migrates them to the DNS, where there is no error recovery possible. When DNSSEC configurations break, sites simply vanish from the Internet.
Chrome's BADIDEA is a good middle ground. Advanced users have a workaround. Average users generally don't.
It's not "basically no different" from an HTTP connection, it's strictly better than an HTTP connection, but not as good as a cert made with a more modern hash. (For that matter the same argument applies to self-signed certificates: you're still keeping a third party from snooping on the phishing attempt the MITM is giving you, which is itself a Good Thing.)
Web browsers cannot reliably distinguish between a configuration mistake and an attack.
For this reason, I think hard HPKP fails are a good thing. For those who opt-in to HPKP, this is a risk one takes in exchange for greater control over certificate validation.
* DH short exchange keys
* NTLM1 passwordsThe whole reason SHA-1 is being deprecated is because it's judged no longer strong enough to protect against MITM.
So I'd say it's intentional and desirable to treat SHA-1 like MITM, rather than to try to get the user to distinguish. User's don't have the capacity to distinguish between, and shoudln't have to, any category of "someone may be viewing and/or altering the content in this connection." They are moving to judging SHA-1 such a category.
Warning: The above sentence may not be right in 5-10 years so they are starting to shut it down now.
I personally find the schedule rather aggressive. Stop issuing certs this year, block it next year. What's the average cert lifetime? 1-2-3 years? This is gonna give some warnings.
There are of course plenty of SHA-1-using sites that aren't being MITMed, but there are also plenty of sites with invalid certificates that aren't being MITMed, either (or sites that are being MITMed in benign ways), and the browser doesn't distinguish between those and real MITMs.