Are Some CAs Too Big To Fail?
Trailrunner7 writes "In the wake of this weekend's revelations of the seriousness of the attack on certificate authority DigiNotar, security experts have renewed criticism of the Internet's digital certificate infrastructure, with some wondering if larger certificate authorities (CAs) might be too big to fail. Would Mozilla and Microsoft and Google have revoked trust in root certificates from VeriSign or Thawte had they been compromised? Unlikely. 'It's not a simple matter of removing certificates from a database, because they're not in any databases,' says researcher Moxie Marlinspike, who presented an alternative approach to the current SSL infrastructure last month at DEFCON. 'We may never track them all down.'"
Maybe we should do a better job of teaching people about computers and technology when they are in high school. CAs are able to get away with poor practices and poor security because most computer uses have no clue what a CA is. If people would start disabling Thawte's certificates en masse, Thawte would be forced to protect its business by regaining the users' trust.
Palm trees and 8
Just to provide some links to the "alternative approach" mentioned in the summary:
* The Perspectives Project spearheaded the concept of independant notary servers instead of a chain-of-trust.
* Convergence is another spin on the same concept, by Moxie Marlinspike in fact. (Not sure if it's compatible w/ Perspectives, but I think it is)
Too big to fail means too big to give a shit. Failure is the motivator for performance. With no cost for bad performance, there is no incentive for good. Just ask the "big" banks, or better yet, ask the customers...
Time for a new plug in. Cert Blocker Plus. Automatically updates with a list of certs know to be compromised, questionable, run by governments, or members of the opposing party. :) (Actually, I can see this coming out soon, and if someone patents this, I call prior art!)
I'm not too sure how CA's work, but if till this point we know, say "Thawte" is uncompromised.
Then, secure Thawte, issue new certificates using a different name, say "Thawte2"
Change this name every year or so, securing the previous certificates.
This way, in case of a compromise, only a max. of 1 year of certs are invalidated
Marlinspike's approach, implemented in a Firefox extension presented at DefCon '11, is to do away with the notion of CAs altogether in SSL, replacing it with a distributed network that reports on the certificate they see. Basically, if the certificate you see agrees with the rest of the network, then you're not being spoofed.
He had previously explained the properties a replacement to the CA system had to demonstrate in order to be viable
Misleading titles? Inflammatory blurbs? Keep in mind that Slashdot is a tabloid.
with Comodo, they only hardcoded some certificate signatures but did not revoke the entire CA. There is another problem: "your website is too small to care". I am not sure if a small business operator will receive the same treatment like they did with Comodo, patch their browsers to protect users of your small site
CAs should be limited to sets of domains, and this enforced in browsers. Country-level CAs should be limited to the country in which they operate. Government CAs should be limited to their domain (".gov", "mil.uk", etc.).
CAs for the open domains should have to post a big bond, which can obtained through a bonding agency if necessary, with a value of at least $10 million, to back up their "relying party agreement".
That's what "corporate responsibility" means - third party bonding.
We shouldn't have CAs at all, they have proven themselves irrelevant, untrustworthy and insecure.
... and highly profitable, which is why we'll never get rid of them, unfortunately.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
So... you're saying he's qualified to run a CA? LOL
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
We regularly find Windows workstations that won't accept a valid certificate from any of several known good servers one of our applications use. Sometimes installing the root certificate solves it, but often it doesn't. Most of the time reinstalling Windows is the only solution.
Microsoft is of no use in these circumstances, as they avoid dealing with root certs at all. The CA also has no answer. Applying root updates, the specific certs, an all-encompassing cert, even removing and reapplying the CA in Windows doesn't always solve it. And yes, 90% of our users never have any trouble. Even clean Windows installs sometimes fail. It's not so simple as malware.
Several things are rotten in SSL. We need something better.
deleting the extra space after periods so i can stay relevant, yeah.
However i play this certifcate game in my head, i find that we need CAs. The ones we got are simply not fit for the job and the govt needs to revoke their license.
Average pay for a server admin, and yet major sites getting hacked left and right, the Net steadily becoming more unsafe all the time: http://www1.salary.com/Client-Server-Database-Administrator-salary.html Must be nice to get paid to fail.
Too big to fail.... Just a sign of the times I guess. Don't expect anything to get better if this is the question we ask ourselves.
The ones we got are simply not fit for the job and the govt needs to revoke their license.
What license? I suppose it depends on the country, but none is necessary here. If one was necessary, "they" contribute tens of thousands to re-election campaigns of multiple politicians, and "you" probably do not. Wonder how thats gonna turn out.
I run my own CA. Its not hard. I certainly needed no license. (Note: I guarantee my root cert is not in your browser). Reason why is some apps like fetchmail, dovecot imap, dovecot POP3, and a couple others, are easier run over SSL than thru shared SSH keys. Also, it was remarkably easy.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
'It's not a simple matter of removing certificates from a database, because they're not in any databases,
I don't get this. Removing/replacing a CA cert from trust is easy for browsers/os vendors to do, technically (CA should be on the hook to re-certify certs if they are forced to remove their cert from circulation).
With OSCP, at least *good* certificates *are* in a CA's database, and OSCP will fail for any signed certs that cannot update the OSCP server's hosted copy. Implementation wise, OSCP validation is done poorly, but that's not a flaw of the theoretical design.
There is a whole lot of people calling to throw the baby out with the bathwater in x509, but a 'simple' tweak of mandatory, *affirmative* (no saying 'ok' to server errors or 'try again') OSCP validation to indicate any hint of trustworthiness. If a CA screws up, kick em out.
In terms of more 'radical' changes, I've liked suggestions such as 'require multiple CAs to sign a CSR' and 'publish the CA(s) that are *expected* to be in use via DNSSEC' (requiring attacker to compromise the *specific* CA in use or compromise DNSSEC as well as a CA). I'm wary of key distribution via DNSSEC (requires implementation too pervasive to be practical, theoretically lands you into more dubious territory than current CA model), and I'm wary of Perspectives/Convergence (I'm dubious on how trust gets established in the first place, and I would not be surprised if these systems fell flat on their face under the onslaught of the 'unwashed masses'). Lot's of attacking current state of x509 in the name of advocating some drastic change without enough thought around fixing the weaknesses while preserving the proven strengths.
XML is like violence. If it doesn't solve the problem, use more.
When I hear that something is "Too Big To Fail", I think about 2008 but I also think about USSR. Was the entire country "Too Big To Fail"? How about USA, is it "Too Big To Fail"?
Who can prevent a country from failing?
CA is not a country, but if one CA issues a large number of certificates, then does this CA become too big to fail and do we close our eyes on the problem, which is - CA cannot be trusted?
Can a CA be trusted? Any CA at all? OK, let's turn this around and ask it differently, can a CA be shut down, as in, all certificates signed by that CA revoked and what is the moral hazard of NOT shutting down a CA if one is shown that it cannot be trusted?
Compare this question to the question of moral hazard in the financial industry: how much better is the health of economy now, that financial industry players were deemed "Too Big To Fail" and they were bailed out and stimulated?
Is it better now? Does anybody believe that the economy is better now, that those corporations were not allowed to go bankrupt, as the market required, debts liquidated, assets sold off to pay off some debts in order of priority?
I know the argument that is going to be brought up: counterparties are put at risk. Yes, other banks are put at risk and they will also go bankrupt and shut down and will have to be liquidated, because they assumed risk that was hedged by the counterparties, which are going down.
Same with the CAs, if you shut down the ones that are failing, then what about all the sites out there, whose certificates will stop working? It's not just B2P sites, it's all sorts of certificates that are used in B2B commerce systems, etc.
AFAIC there is no such thing: "Too Big To Fail". You let them fail, you always let them fail. Certificates must be recreated, it will cost businesses something, but it will make them choose their CAs (or whatever other means of doing business), this will increase competition, new ideas will be thrown around, likely many will go with self signed certificates (well many do, I know for a fact that many businesses do use self signed certificates for inter-business stuff).
If you think preventing something that is "Too Big To Fail" from failing with SOLVE the problem, look at the economy today, look at who was bailed out and think again.
You can't handle the truth.
should be nationalized. because if they are as big like that, it means they become infrastructures of strategic kind, which you cannot just let private interests control.
anyone arguing otherwise has to justify not privatizing the army first.
Read radical news here
I thought CAs were a regulated business, just like financial, accounting or law firms, i.e. you have a duty of care, doing your job properly? If not, I foresee lawsuits...
Do you have a better, scalable solution that doesn't suffer the same or greater weaknesses? The problems of CAs remind me of the issues with spam. Everyone agrees the system we have is broken and no one has a better solution.
Xavier Rabourdin for president 2012
I'm pretty sure they're not. Anyone can be a CA. The only thing necessary to be a "real" CA is to have your cert installed by default in the major browsers. They (Opera, Microsoft, Mozilla, Google) decide who's a "real" CA or not. In other words, it's just about trust. Your browser trusts Thawte, Verisign, and a ton of others by default. If you install my personal root CA in your browser, then for you I'll be just as "real" as the others.
Before you respond to an obvious troll, look at the profile. I only found one post of his not modded -1, and it was 0. Ignore them, and they soon get modded to oblivion. Respond, and he will respond back and have faff material for days.
Like my disclaimer says
I suppose it depends on the country
but in the USA its completely unregulated, at least WRT "being a CA".
As I said, I am my own CA ... If I issued some certs to you, either barter or for cash, then I'd have all the usual financial / tax / zoning / liability laws that any business follows or pays money to get out of following, but absolutely no laws are specifically CA related.
Its easy to govt license physical things like nuclear material or firearm receivers, but I think you'd find govt licensing of openssl software to be a bit problematic.
If you don't believe me, try to disprove me by setting up the software, and being unable to issue certs without some sort of govt license...
Its like talking to people who thought you needed a license to install a webserver... Stockholm syndrome that us little people could not possibly be permitted to have that power, so it must be illegal or something, etc.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
Actually, yes. http://convergence.io/ However, it also is not perfect, just better. Just catching that troll behind you there...
southerner based pseudonym
Well at least the troll is semi-creative. I especially like the cowering in the shadow parts. If you're a troll, generally you don't come in the light much, and you don't HAVE a shadow for anyone to cower in. So.... What you request is impossible. Sorry.
your chosen fatherless southerner based pseudonym
The pseudonym is fatherless? Well, yes, in fact pseudonyms are spawned from the fertile imaginations of the users who cower behind them, and in fact have neither mothers or fathers.
Yes, yes, I know, cower in your shadow behind my pseudonym.
All the world's a CPU, and all the men and women merely AI agents
So I've seen quite a few people wanting a switch to self-signed certs (who IMO mostly don't understand what making that secure actually involves), and an idea to check certs from different network paths (which doesn't work if your only path is compromised, and how do you secure the communication to the service that does the check for you?).
So here's an alternative idea: Require multiple CAs.
Instead of doing it the "extended validation" way which is more money for not a whole lot more service from the same provider, it'd be much better to have multiple CA signatures on a single cert.
Compromising multiple CAs in the same timeframe to create a cert would be considerably harder than creating one. More importantly, it'd make revoking large CAs much easier.
Let's say that the new norm is to have a site's cert is signed by 5 different CAs, and that the minimum acceptable amount is 3 signatures.
Then, if Verisign gets compromised there's no problem with pulling their cert: you're down to 4 valid signatures on your certificate, which is still fine. That should put considerably more pressure on CAs to perform better.
Even Verisign wouldn't be able to trust that their security problems would be let go due to their popularity, as even the largest CAs would be completely expendable without the end users needing to care much. The site would just go with a different 5th CA to return back to the full strength.
Why doesn't each browser's company put up a certificate revocation server? Then, they can revoke individual certs, including those of the certificate authority, and control the length of the revocation, re-authorization, etc.
Citizens Against Plate Tectonics
All it takes is to convince someone to put your cert in the list of roots. That someone can be a distro maintainer, browser maintainer, or individuals. The more, the better. In the practical sense, if you can convince MS, Google, and Mozilla to include your cert, you are now a CA.
I point out that Comodo are compromised twice recently, and not revoked by any browser. As Moxie pointed out in his blackhat talk.
Or they don't even care to listen. Oh, and one CA is compromised then all HTTPS sites are compromised, not just those the CA is payed to sign, I'll let you ponder that one.
Yes - DNSSEC.
Right now if you lookup bank.com in DNS you get a bunch of records that are maintained by Verisign. With DNSSEC those records will be signed by Verisign so that you can be sure they aren't tampered with.
There is no reason that one of those records can't be an SSL certificate. There is also no reason that one of those records can't be an indicator of how much verification Verisign performed.
For 99% of intended uses just verifying that the domain owner uploaded the certificate should be adequate. Unless you actually read the certificates for the sites you browse you aren't getting more than that today anyway.
If verisign tries to charge to include certs it is a non-issue - just run the site off of a subdomain and then you can put the certs on your own DNS server. You still have a signed chain of trust protecting the DNS records due to DNSSEC so it is just as secure.
DNS is already scalable to the entire internet, and is designed to handle distributing arbitrary host records. SSL would only fail if DNS fails, and if DNS fails you're not going to be connecting to the server anyway.
One thing is that I would love a costless distributed solution like the one Marlinspike suggests. I'd much rather trust a large group of peers than a company whose security practices may be questionable. Sure, the peers might be much less secure individually but as a group it's extremely hard to force something onto everybody thus causing manipulative results. If the network both rates the certificates and each other, it's next to impossible to introduce corruption on a level that matters.
Now, given what we have today, the solution is easy:
Regardless of importance - any CA caught being the source of fraudulent certs should be immediately blacklisted so that all certs issued by this CA are rendered useless. It should not even be possible to accept the risk and visits sites using certs from this CA. This will in turn result in massive lawsuits against the CA (just imagine the loss from a company like Amazon being unable to process payments) and thus most likely the complete financial destruction of the CA. The mere prospect of this should make the CA's take their security seriously. I mean if a semi-talented wannabe like this Comodo-hacker can cause this much damage, and perhaps even have gained access to several CA's, their security must be next to non-existent, and that is more than unacceptable.
"For every complex problem, there is a solution that is simple, neat, and wrong." -- H.L. Mencken (1880-1956) --
What if you publish your own CA with the domain name in the DNS?
You first make an CA and publish your public key as an TXT (or something similar) field to your root domain (name.tld) and using dnssec to make sure it's correct. You can now use that CA to make certs of all the names that you want within your own domain.
If someone tries to make an CA of your name and try to intercept the dns traffic to change the public key, the dnssec would fail and in that case and the CA is invalid?
So here's an alternative idea: Require multiple CAs.
Instead of doing it the "extended validation" way which is more money for not a whole lot more service from the same provider, it'd be much better to have multiple CA signatures on a single cert.
What you are proposing is roughly what the Perspectives project has implemented.
Highly profitable ? Hmm... well, there are also free certificates:
https://www.startssl.com/
Obviously you can pay for extra features, but it is still the cheapest choice for a lot of the extras.
New things are always on the horizon
If you want to be on that default list, it will cost you a lot of time (and thus money) to get started.
It is not that you have to pay a lot of money to browser vendors, it is because every browser vendor has it's own set of rules, although many are discussed and 'standardised' through the CAB-forum.
Most of the money you need to pay is for the auditing by an organisation like WebTrust or PriceWaterhouseCoopers.
The audit looks at your processes and procedures. And checks all the paperwork and that you keep paperwork on the certificates (and types) you grant and revoke.
The audit checks if you pass all the requirements, after that you probably get on the list.
At least that is what I understand from it, after looking into the CACert project.
I hope they add a requirement that the CAs which allow for online automated requests need to have their technical infrastructure audited regularly too, with penetration testing and so on.
New things are always on the horizon
DNSSEC is only secure if the CAs that sign it are also secure. If the problem is the security of the CAs, then their subordinate security infrastructure (DNSSEC) cannot be the answer.
I'm not convinced of that.
Registrars already do a reasonably good job of controlling ownership of domains. I haven't really seen any cases where a registrar transferred ownership of a domain of importance (like Google/etc) to a random 3rd party unless they allowed the registration to lapse. Sure, you can register google.zz where zz is some obscure country code, but that really isn't the same thing. DNSSEC will protect against DNS spoofing, which is a much more common attack vector.
I would think that most CAs are only going to verify the CN to the extent that they ensure that you control it, which is what DNSSEC does anyway. Anything stored in any field other than the CN in a certificate is worthless 99% of the time since the browser can only check the CN and nobody reads the rest of the certificate.
So, what DNSSEC ensures is that when you type google.com into your browser, you get the site hosted by google.com. It doesn't guarantee that you get the site run by Google, and neither does the present CA system. (If Google's domain expired I should be able to register it and get a certificate legitimately for John Smith, CN=google.com which works just fine in any browser.)
DNS is also much more heirarchical. You have one administrator for a domain who is responsible for running it correctly. With CAs there is no scope limit on trust - so some obscure CA in Singapore can issue microsoft.com certificates. With DNSSEC only Verisign can issue a microsoft.com certificate, and if they botch the job they can lose their contract.