Are EV certificates worth it? A technical guide to SSL validation
certsimple.com
certsimple.com
In the past I've chosen not to buy EV certs not because the process is more involved, but because it just doesn't seem worth the extra cost - I've never heard of someone choosing not to do business because a site had the wrong kind of SSL certificate. Most people would probably put their credit card details into a completely unencrypted website given half a chance.
This hasn't happened with EV yet, but it did happen with 'site seals' - those images (or in Symantec's case Flash objects) that promote a particular certificate brand in a web page.
CertSimple sells certs that come with a DigiCert 'site seals' but I'll happily tell you that usertesting tested CRO with site seals a little while ago and found out that, in one case, removing 'site seals' completely was better for conversion - apparently reminding people they're not being hacked doesn't inspire confidence. Let me know and I'll dig up the event recording.
I feel EV is a different situation - it's the only chrome displayed by the actual browser concerning identity of a website (which as we know is not the same ting as the origin). But I don't have numbers to say and I shouldn't be the one to conduct the research since I'm clearly biased.
For a lot of SMBs and individuals it is hard to justify additional $150 a EV certificate costs. Plus the loss of convenience that wildcard DV certificates provide (and EV certificates cannot).
I like the concept of EV, but unless I was running a large company with deep pockets or was in a sector where EV is helping (e.g. finance/payments/etc) then I'd just skip it. I'm not even sure it helps mitigate phishing.
However, the current per-year price of EV is less than a half day's work by an average programmer. I'm not necessary sure that's out of the question for most businesses.
What did reduce was the "are you legit questions".
We bought EV for https://Userify.com even though we're a startup, because it demonstrates our level of commitment to security and that we're serious in the marketplace. We also use a wildcard TLS certificate for customer-specific logins. EV-TLS also fights phishing attacks.
It's somewhat shocking that AWS doesn't use EV-TLS for the console login, especially when they're so good about other things (like searching for customer keys on Github, watching for phishing exploits, etc.)
You mean this AMZN?:
http://imgur.com/S1Pz155,TdRDjIq#0
It's shocking to me that they aren't even using proper TLS settings even though I'm sure they're perfectly capable and aware. Doesn't inspire confidence in their security.
Even so, it still blows my mind that even the main Amazon.com main page uses no SSL at all by default, and they're an e-commerce site, unlike Google and FB. Seems to show a lack of respect for customer privacy.
CAs are audited (to reiterate) for compliance every year on three audit standards:
- WebTrust for CAs
- WebTrust for CAs EV
- CA/B Baseline Requirements
There is another standard, used by some in the EU, ETSI TS 102 042, which replaces WebTrust. The auditors are always independent of the CA. Unfortunately, the audit reports are not public but management attestations are.
https://certly.io/audits.php has links to GlobalSign and Comodo statements if you're curious.
The EV Requirements themselves do not.
However Google required since Jan 1 2015 that ALL EV certificates have certificate transparency enabled. See the links in the article - I've tweaked it a little to directly address your point too.
Certificate Transparency makes it much harder for a CA to issue a certificate for someone else's keypair in your name.
> Does the EV certification process put any requirements on the CA, such as mandatory independent audits or some other overwatch mechanism?
The EV Requirements themselves do not.
However Google required since Jan 1 2015 that ALL EV certificates have certificate transparency enabled. See the links in the article - I've tweaked it a little to directly address your point too.
Certificate Transparency makes it much harder for a CA to issue a certificate for someone else's keypair in your name.
------------
Original response below:
Hi there, author here. I hope you don't mind the foul language but I couldn't convey the general feeling towards CAs at EdgeConf much better.
This is by no means a replacement for reading the EV requirements (and baseline requirements) but does capture the typical validation process for all the (around 30) EV certificates we've been involved in so far.
They won't know the difference between a lock and a green bar. I would bet a percentage of users don't even notice if they are browsing an site using SSL or even understand why HTTP without SSL is bad. This was proven with tools like Firesheep where people are more than happy to browse facebook on an open wifi connection without using SSL.
I know I saw a discussion with the Chrome team talking about showing an error-like page for all non HTTPS traffic. This is not the solution - the solution is to show some sort of message to the user that is non-blocking that says "hey your information is sent in the clear". Also - change the self-signed SSL to not look like an error page. Using self-signed SSL is more secure than not using SSL at all - even if the certificate isn't verified your data over the wire is encrypted.
At least browsing Facebook in open wifi (several years ago) leaked only the cookies not the password.
I would bet this percentage is much higher than many people here think. Most people have no idea what "http" means, or even what a protocol is or why they would need one, much less URLs, HTTPS, SSL certs, encryption, identity, validation, etc. Many users whom I observe don't understand the URL field. If they want to load http://cnn.com, they type "cnn" into the Google search field and click the first link -- for sites they regularly visit, every time, multiple times per day! Many don't know what a web browser is. [1]
The idea that they will grasp EV certs, and all knowledge required for that it (certs, issuers, identity, encryption, what does encryption have to do with identity, etc etc etc) seems very unlikely.
Yeah, they even click the ad links, which makes me cringe every time.
The only time its OK to not warn about self-signed is if you're using HTTP (unencrypted) and the browser did some opportunistic upgrade to prevent totally passive attacks. But no indicator of security should be shown at all.
Sure you can - symmetric encryption. If you have the same key to encrypt and decrypt - you can't be sure you are talking to a good guy on the other end.
I think what you mean is you can't have secure communication over HTTP without authentication - which I would agree with. But there are ways to accomplish that without a CA such as certificate pinning. Right now though - only technical people would know how to do that. There should be a non-scary button that shows up the first time to a friendly page that says "I don't trust the certificate that was presented - but this is the first time you are going to the page - would you like for me to continue and remember the certificate for future connections?" Obviously something a little more user friendly - but I think you get the idea.
> So self-signed needs an error because it looks exactly like an attack.
Same logic applies to HTTP then - without SSL you can't know for sure if there is an attacker in the middle or even if you are talking to a bad guys server. Self signed certificate will at least make it so that people that web traffic sent over open wifi won't be sent in the clear. It could be a guy doing a MITM attack - sure but he could have just as easily MITM your HTTP traffic.
However, showing an error page for HTTP traffic would be insane and have a huge drop in web traffic due to people not knowing what to do.
You seem to be in favor of the current CA system - if recent history has taught us anything (superfish ring a bell?) - that the current system is completely and utterly broken. Do you check on a regular basis the list of CA certs that are installed on your system? If not - how do you know that you don't have a CA cert that was put there without your knowledge - that would allow someone to sign an SSL certificate for any domain on the planet and your computer or mobile device will automatically accept it.
Using the HTTPS URI schema indicates you're asking for a secured connection. That is why the errors exist. Not because of some general security principle. HTTP has no security connotation hence no issues.
The CA system isn't great. But it's far from totally broken. Ask CNNIC about how issuing bad CA certs worked out for them.
Having a self signed certificate isn't an error in the encryption negotiation (fatal) but a policy error (non-fatal). In technical terms - there is nothing wrong with a self signed certificate preventing me from having an encrypted session.
> HTTP has no security connotation hence no issues.
I think you just pointed out the problem - HTTP shouldn't exist at all - we should be migrating everything to HTTPS or some other protocol. I'm not sure letsencrypt is the answer - it might just turn into another non-maintained CA (see startssl).
> But it's far from totally broken.
The simple fact that CAs can, and have, been compromised in the past proves they are broken. If a fraudulent certificate is signed - it doesn't matter if is added to a CRL in 5 hours or 5 minutes - the bad guy has probably already used it to do damage. I'm not saying CAs are pointless - I'm advocating for a way to have a CA that is only allowed to sign certificates for certain domains - especially if I can be my own CA. Yes, I know that's not the way it works now - but surely we can modify the infrastructure to allow this.
Yes there is - the ability to verify identity and hence actually prevent MITM attacks. (And in most cases where an attacker has access to read a network, they can write to it, too.) You can't ignore key distribution no matter how annoying it is. It's really that simple.
If a CA issues a false cert, that becomes a mathematical fact, and the CA gets revoked. Few entities can afford to burn lots of CAs. But anyways, plenty of people are working on this issue, with many suggestions, some even in place (cert pinning). Some trade the current CAs for total trust in the registrars. Others rely on reporting and monitoring to try to build up an idea of trustworthiness (e.g., if a site is presenting you a new cert from a different CA, especially if others aren't seeing it, alarm). Security here is simply not a binary thing.
In asymmetric encryption - we both will generate a public/private key pair. We can walk up to each other, exchange USB drives containing public keys, and now we can communicate securely. We have just created a secure connection without a certificate.
All the CA is a middle guy that says "Oh you want to talk to someone claiming to be Alice? Get their public key and I'll verify it as I know Alice." But really how do you trust that middle guy?
> And in most cases where an attacker has access to read a network, they can write to it, too.
Well maybe - put it into context. If a wifi system is open - it's extremely easy to sniff packets (shown by the success of Firesheep). ARP spoofing and other tricks are more complicated - but less likely to happen (someone would have to prop this on a table and it would be a dead giveaway that they are up to no good [1]).
> You can't ignore key distribution no matter how annoying it is.
I'm not ignoring it - I just want to shift it from having central CAs that can sign certificates for any domain (superfish anyone?) to CA certificates that can only sign for specific domains. Perhaps the CA certificate could be stored in DNS (even glued to the domain like NS records are)? Perhaps we keep the current CAs but force them to allow them to sign a CA cert that is restricted to a certain domain (for free or next to free)?
> If a CA issues a false cert, that becomes a mathematical fact, and the CA gets revoked.
That doesn't matter - if I'm a bad guy and find this I know I would only have a limited time before it's discovered. So, if I'm a smart bad guy I find a targeted attack, get the bad certificate and do my attack. By the time people figure out what happened - my attack is over and I got what I wanted. Just think of the amount of damage that could be done in a busy place with free wifi and a bad gmail.com certificate. I'm waiting for the day that happens and everyone can't understand why their [insert service provider] account was compromised...
> Security here is simply not a binary thing.
I never said it was - but the current system is broken [2] [3] [4] [5]. Even Schneier says it's broken - which I find he is pretty respectable in the crypto industry.
[1] http://i.imgur.com/MFbOE0C.png
[2] http://www.theregister.co.uk/2011/04/11/state_of_ssl_analysi...
[3] https://www.schneier.com/blog/archives/2015/03/chinese_ca_is...
[4] http://arstechnica.com/security/2011/09/comodo-hacker-i-hack...
[5] http://waf-devel.blogspot.com/2015/04/stop-blaming-chinese-w...
CA name restrictions are already a thing, but doesn't really solve the problem. Moving to DNS like DNSSEC just changes from the CA to the registrars and hence world governments. And it's a lot harder to block a registrar than a CA...
> the amount of damage that could be done in a busy place with free wifi and a bad gmail.com certificate
This has happened. Chrome detects it, fails the connection, reports the problem, and the CA gets killed. It's pretty much what happened to CNNIC via an idiotic intermediary by accident.
Edit for clarification: There is a short description of DV & EV, but it doesn't mention what DV/EV stands for. I'd love to know that (without Googling, because lazy).
This is similar to Google requiring you to create a file in the root directory of a web site or creating a TXT RR (with a specific value) in the DNS zone for a domain for Google Analytics (if you've ever done that).
It has to do with "will users trust my site more if they see an EV cert"
And the answer to that (IMHO) is, no, definitely not.
Most users don't even notice when a site goes from HTTPS to HTTP, the chances that they will notice the difference between the display of an EV cert. and a DV cert. is negligable.
Ask yourself this, can you list the sites that you visit that use EV certs? If you can't, what's the chances your users will....
Of the last few sites where I brought something, most use a DV cert. I always check that, but I don't mind them not having an EV (I only mind plain text and bad crypto).
Of course, I don't want to imply that my behavior is typical, because it's not. I'm just answering your question...
I expect only a tiny portion of users understands this.
As the article mentions, that not to say there isn't flaws in the process. But most attacks against EV have come in the form of DV downgrades rather than falsely issued EV certificates.
Actually, if you have info on any falsely issued EV certificates I'd be really interested.
EV offers nothing over normal certs, other than the company name and the green bar, and I can control the company name if I have another £15...
- The Registry of Companies & Intellectual Property in Russia must accept Example LLC as a valid business name which may be difficult if Example Inc was well known.
- The issuing CA must manually inspect all requested domain names in the EV cert and ensure there is no phishing attempt. A certificate request for the hostname 'example.com.example.ru' would be rejected. Depending on how well known Example Inc is - eg, say they were Bank of America - even 'example.ru' may be rejected.
- If for some reason this failed and a certificate for the identically named Russian company was issued, it would read 'Example LLC [RU]' in the address bar rather than 'Example Inc [US]'
Far from a solution to the SSL problem, but an interesting and free option for a lot of sites that otherwise would not bother with SSL.
[0]: https://blog.cloudflare.com/universal-ssl-encryption-all-the...
I'd be much more willing to pay for EV if that somehow could simultaneously make it technically impossible for parallel certs to be issued. That would provide actual value. But not when all you are paying for is just a bitflag that causes browser chrome to change slightly.
When you see the green bar, it's proof that it's at least nominally certified to be served from the entity displayed (barring key theft etc).
Barring parallel certs, even if it was possible, wouldn't necessarily be a good idea, since there's a lot of legitimate uses for them. For instance, we also have a wildcard (non-EV) certificate for the same domain, covering *.userify.com that we currently use for customer subdomains.
I'm far from an apologist for CA's. I think the entire system is broken. It's ridiculous that my browser trusts a Chinese govt CA with the same level of trust as the best US or EU CA, and it's ridiculous that it's so hard for me to customize that level of trust. Still, it's what we have right now.
EV does represent some actual effort for every single issued certificate on the part of the CA's, and they do deserve to get paid for that. Whether that payment should cost many hundreds or even thousands of dollars is debatable, however!
Btw, for parallel certs on customer subdomains, that sounds like a very niche use cache. Maybe you could have used a different base domain for user content. (Isn't that best practice anyways, to avoid xss'ing cookies onto the main site?)
Lots of startups do wildcard for customer hostnames. (Freshbooks, Campaign Monitor, I'm sure there are many more.) But we're actually moving away from it anyway.
Incidentally, Same Origin policy prevents XSS or cookies across domains like that[2], so e.g. userify.github.com would actually be safer than github.com/userify.
1. https://www.symantec.com/page.jsp?id=compare-ssl-certificate...
3. https://en.wikipedia.org/wiki/Same-origin_policy#Origin_dete...
EDIT: good point, iirc Microsoft even had an SSL cert spoofed that way one time.. or maybe it was a domain.
This infrastructure is not free. But yes, technically CA's could issue certificates for absolutely everyone for near-zero cost and they would be just as good as the ones that cost more.