Is The Public Key Infrastructure Outdated?
dchat writes: "Roger Clarke, Visiting Fellow, Faculty of Engineering and Information Technology at the Australian National University claims that the "Conventional, hierarchical PKI, built around the ISO standard X.509, has been, and will continue to be, a substantial failure", and then he goes on to explain why.
I'd be interested in the views of Slashdot users, as my organisation is contemplating considerable investment in X.500 and PKI (including X.509)." Lots to read here.
That would be hella-stupid, unless you have people on staff who are *extremely* qualified at implementing cryptography. 4000 bit keys are useless if you make a moronic mistake implementing the key system. If you need security, use PGP, GPG, SSH, or some other reliable, already implemented open protocal.
-- The act of censorship is always worse than whatever is being censored. Always.
I see this whole issue of disintegrating e-trust as a modernist/postmodernist dilemma. the modernist posturing is inherent in the act of consumerism itself, in cryptology as well as in art -- there is a need being expressed here: for certainty, for objectivity. that need is necessary in order for people to partcipate in mass consumerism without considering its deeper implications. Anyone must be able to sit down and buy something, and think of it only as "I click the mouse, it shows up." Clarke does well to introduce the alternative theory of developing reputation, and that is what EBAY has done, but that approach is insufficient for the mass consumerism of the future, people can't be expected to worry about things like this. "i click the mouse, it shows up. shipping and handling extra." like any modernist theory, however, the Certificate authority contains the seeds of its own demise. Clarke is correct, the private key can jepoardize the security of the whole system, as well as compromise privacy. the modernist system of 'absolute truth' has failed in the manner Clarke describes, and we are left with the postmodernist idea of relative truth and PGP's 'web of trust.' But just as postmodern art is critical of rampant consumerism and absolute certainty, so too is the pure consumerism mentioned above impossible with PGP. SDSI's idea of using attributes and not identities is useless, since attribute could then be spoof just as easily if you got ahold of a key. the whole idea of being able to maintian an identity without biometrics or chips seems suspect to me, since it has never been employed in the past. It has always been visual identification (bar tabs) magnetic strips (credit cards) or verifiable name space (billing adresses) that have been used in business in the past, and computers seem to offer no relief from these conditions. if anything they have complicated the system even further. if it seems that I am hedging about and not tending toward a final answer of 'what's best,' that's only because there is as yet no 'answer' to the modrnist-postmodernist dilemma. I wonder however, why it is so important to a bunch of technocrats such as ourselves that the common man be able to enact these transactions unconsciously. MAybe it is Wyndham Lewis' "the best thing humanity can do for artists is to remain unconscious," to provide us with problems to solve. "Machines are our favorite game," he says, we invent them and hunt them down." but he too is a modernist. a postmodern and perhaps more enlightend approach might to be say that those unwilling to stand up and defend their e-rights through all due vigilance have no place doing business on the no-man's land of the internet, unless we want an internet Leviathan to replace this no-man's land.
both of them.
sulli
RTFJ.
I think that the author of this paper get's it about 1/2 right - especially when he says that the current "standard" way of implementing the Registration Agent process is flawed - it is - most companies that offer Certificates do so with a great deal of show about the fact that you can now sign your e-mail, but with very little education and thought in the overall security chain process. What is worse, is that most Major PKI vendors don't have real Certificate Policies - instead, they publish Certification Practice Statements that wrap all of the various certificate type up in one bundle, without explaining in clear, consise language what the reasonable trust expectation would be out of any given certificate - thus leaving the certificate purchaser a very fake sense of security. So, that said - I would have to disagree with the Article Author, when he says that we need to abandon X.509 based PKI's - I would say the exact opposite - we need to adopt them, but with a carefull eye to standards compliance, and with large amounts of user education. There needs to be some common criteria established that allows consumers to rate the various PKI's currently offered, and decide which ones actually can provide the trust levels that are required in their particular circumstances.
Your reply is well intentioned but misinformed. I dbout the original poster was slighting the potential exploits of the script kiddie crowd, but there is a problem with your position. Smart card hacking has in the past been possible with little to no equipment when manufacturers made really stupid mistakes, allowing things like timing and power attacks against crypto, power attacks on secure key storage, and some low cost forms of probing. However, the "bar" of equipment cost needed to access your average smart card is continuing to raise, and at a substantially faster rate than the cost of lab equipment is dropping. Work in conformal coating and tamper detection processes have currently raised the bar to the point where even normal e-beam probing is insufficient for a good chip, and that equipment costs 2+ orders of magnitude more than a PC, placing it slightly out of reach of your script kiddie crowd. Newer chips require handling in remote manipilation cells to avoid triggering various tamper devices, and there's another 1-2 orders of magnitude just for a support item. I'm not trying to say that smart cards are secure, or ever will be - thin plastic just doesn't cut ut. But I think its nieve to extrapolate the pervasive threat of the script kiddie into a problem space requiring at least several days access to equipement costing as much as a few million USD.
What do you mean by 512 bit version of des? Did you just screw with the key generation scheme for each round? Is that really that much more secure? Encrypting data twice with des does not give you much more security. That's why there's 3Des but not 2des. I'm not convinced that what you do is significantly more secure. esp if you messed with the S-boxes and stuff. Using a proprietary system has glaring disadvantages, such as umm... not having anyone being able to decrypt or encrypt data unless you send him/her your homebrewed system. So if they intercept this transmission, there goes your security through obscurity. If data you're sending is within a private organization, it usually makes more sense to use private key systems. Plus, public key systems are slow. Implementing 3k-4k bit keys would be stupid since there isn't a need for it. And of course, as mentioned somewhere else, the article talks about key deployment and models of trust, not cipher strength.
these new methods you propose are no better. if you could have gotten access to someone's PKI private key you can get access to all their individualized authentication keys. this means you can impersonate them at least everywhere they've been before.
also, there's the issue of accountability. with PKI you can use post offices, biometrics, chips etc. what do you do with individualized systems when you want to do a first transaction between a person and a website? you can't use 'reputation' without some universal identifier that would make these individualized systems useless if it worked. so what's left, credit card or social security numbers? how do you transmit to be used in a crypto-system you haven't yet established (because you're going to use these numbers as keys for the system). they can be intercepted, and if you don't use these numbers what have you got left? there has got to be some global protocol for the initial communication, and everyone needs a public key. the only advantage of PKI over a credit card or soc # is that you don't care if people intercept your PKI public key!
Getting a certificate is slow (may take several weeks) and expensive (~$100/year), making it prohbitive to small organizations and individuals. Only capital rich organizations should have encryption is the moral of that story!
The technology is too complicated. Installing a cert is a pain, and riddled with unneccessarily complex encryption jargon. All I want is a secure web server, but to get it I have to learn about a variety of different certificate and key formats.
The browser makers (who distribute the top-level certs) operate a functional cartel with the certificate companies (Verisign, Thawte etc), to prevent real competition for certficate producers. You need to be in the club to get your certs distributed, and hence recognized by browsers.
The certificate companies have no interest in providing certificate granting authority certificates. For example, suppose I'm a large organization such as a University, and I want the right to grant certificates for departments, units and individuals within my organization (on the grounds that I, the bureaucracy have the tools to authenticate their identities). Even though the technology permits this -- I could have a certificate granting certificate, issued by one of the cert. companies. It won't happen. The reason being that the cert companies have no incentive to give away their primary business asset -- the right to create certs.
So my response is this: Lets push for PGP as the new infrastructure. It is inherently devolved, because if you have a PGP key you automatically have the right to sign someone elses key -- everyone can be a certificate authority. PGP could be bundled with web browsers and email software, along with a few central PGP keys (such as verisign and thawte). Then we could really start building that web of trust.
The problem is, he seems to build an argument that an absolute online identity is needed, worldwide. What it *really* comes down to is this:
- Sellers want to know they will be paid for their goods
- Buyers want to know they will actually receive the goods they have paid for
Neither of these need an absolute identity check -if you walk into a shop, do you need a passport and driving licence to buy a shirt? no, you only need money.
If you order something not currently in stock, do you expect to see the current books, proof of lease on the shop, and other forms of ID for the business? no, you make a general assessment of the odds of the shop staying in business - or pay by credit card, and rely on being able to claim back the cash if they get stung.
These same factors map well to the internet - and if you are going to have an ecommerce - orientated, hierachical trust system, the obvious candidates for top level CAs are the credit card companies themselves. AE are already moving to epidermal payment (one shot credit numbers for a single transaction) and could easily offer prepaid cards that do the same thing (in much the same way mobile phone companies can sell prepay cards for their phone service). yes, it would be possible to have each and every transaction tracked and logged as no other system of commerce has ever done before - but why do we need it?
--
-=DaveHowe=-
It won't - but a web-CA bought cert won't either. The correct solution for this case is for the head librarian to generate a CA key, and sign the keys of each new year's intake. That way, one key expires every year (taking the leaving students auths with it) and one new one is created each year (which is what you point out further down the chain).
In this case, you are certifying something different than the story covers - you aren't certifying the identity of the user, you are handing him an access key to a resource you control.
In theory, the Web of Trust is a long term, distributed solution to the Identity problem. In practice, it would require Perfect Users (ones that never certify incorrectly, never lose control of their own key and never attempt to obtain a false certification for personal gain) and those are a bit thin on the ground...
--
-=DaveHowe=-
"The other benefit here is that with physical smart cards, private key theft is nearly impossible. (The only exploits I know of involve physical access, and LOTS of equipment beyond the reach of the average skript kiddie)"
Again the ingenuosity comes up... LOTS of equipment? And what skript kiddies are? They are nothing more than people using LOTS of equipment and software. Script cracking was born from the huge building of 25 years of computer cracking/hacking, when all this soft and equipment became able to be automatized. In fact a skript kiddie knows nearly nothing about the inners of the system or software it exploits. He uses the huge knowledge database hackers/crackers left and the huge level of automatisation script languages give. Nothing more.
One may think that dealing with hardware will be harder for kiddies. Are you sure of this? Are you really sure? Today some of the electronic infrastructure for smart cards systems costs only a few tens or hundreds of bucks. And already today people break, crack, rip codes from magnetic strips, chips and other stuff. Besides there are serious problems on doing security. Sometimes people try too much on doing authentication and leave other things completely untouched. Once a physical key was broken in less than 15 seconds just because the developers decided that a "if key exists then do_everything_else" would suffice.
20 years ago many people would give their hand on defending the capacity of 56 bit DES. Where we are today? Magnetic stripe cards are not a problem for ATM thieves. Even if they are 10 years old are able today to get into. Like the Kalashnikov AK-47, modern computerings gave a universal weapon for everyone. The only problem is time and a few bucks in the needed moment...
And how, exactly, is the fact that your buddy down the hall in the dorms has signed your key going to do anything useful, like, for example, give you access to the items on electronic reserve at the library that have been purchased for the use of only engineering students?
On the otherhand, a central authority has the information to issue certificates that the rest of the official organizational structure can make use of.
And so, you either:
- download a customized browser with the campus certificate authority certificate pre-loaded, or
- click a link to install the CA certificate,
and voila you are in business.And your certificate based on this CA will, in all likelyhood accepted on campus, but this is probably a feature. When wider use of user certificates comes, and it will if the fedgov gets their disintermediation efforts off the ground, then more widely accepted root CAs will proliferate (I'm guessing credit card companies, and all levels of government).
And that's where I think the problems will really start -- it'll be just like my meatspace wallet which has am absurd number of vertification tokens in it, and knowing which you can use where and when and just carrying them all around gets cumbersome.
What would be convenient, but which gives many of us the willies is a single national certificate which can have various endorsements added to it, so if I present it to a site, they can search it for the endorsement or endorsements they want to see, but I as a simple minded user (and that's the most common kind) just 'hand them my papers'.
Shut up, be happy. The conveniences you demanded are now mandatory. -- Jello Biafra
The author is saying that complete trustworthyness is unobtainable.
Duh!
There is no magic pixie dust that you can sprinkle on e-commerce (or anything else, for that matter) to make it "secure". You'll have a hard enough time just defining what "secure" really means for a given application.
The real question is, "is it good enough?". You are the only one who can answer that. Is what you are buying appropriate for your application?
One very big red flag is your comment that you are contemplating a "considerable investment". Sounds like somebody is trying to sell you a trainload of snake oil. The basics of PKI are not that complicated.
Personally, I'll trust a CA when they agree to be liable for consequential damages, ie, "We agree to pay any damages you've suffered caused by your reliance on our certificates". I'm not holding my breath.
--
Welcome to the Turing Tarpit, where everything is possible but nothing interesting is easy.
I believe that what eventually will to evolve is a whole bunch of little problem-domain-specific public-key infrastructures, some of which will use x.509 certificate formats, some of which won't. pgp, ssh, secure dns, etc, all "do their own thing" and provide a public key infrastructure to attempt to solve the piece of the problem they care about without getting tangled into the morass of hierarchical PKI which caused Privacy Enhanced Mail (PEM) to sink without a trace..
I work writing code for one of the major players in the PKI space. Without mentioning any names, or making any plugs, I would advise you to think longand hard about what you are trying to accomplished with PKI and why. A lot of the existing products on the market are more interested in domination of the market, and less on being the transparent (if elaborate) infrastructure PKI was designed to be. PKI should be as dependable and transparent as any of the other internet "specs" when done right. Of course, history has shown that nothing is ever that simple, just look at the wars being fought over Java or the ones over HTML (which have died down to some extent.) PKI works well for those who are willing to suffer the pains of being an early adopter. Micro$oft and Netscape browsers don't parse certs the same. (Sadly, I have to admit that M$ is ahead in this area.) The major vendors often have interperated the specs just differently enough to make interoptability a major problem. My advice is to find a product which fits your present needs, and seems to offer the flexibility to expand into the future. The flexibility is going to require a willingness to play nicely with others and to intergrate with existing apps. Stay away from total end-to-end solutions. You are not looking for a "structure" but an "infra-structure". For all the complexity, PKI is likely to become much more wide spread due simply to the demand being placed on the internet by cooperations. IPSec and smart cards are becoming a reality, and the best way to manage those is PKI. The other benefit here is that with physical smart cards, private key theft is nearly impossible. (The only exploits I know of involve physical access, and LOTS of equipment beyond the reach of the average skript kiddie) As PKI becomes more widely deployed, it's providers will be force to become more standardized or get out of the game. Just like with the Web, early adopters had a lot of headaches with different browsers HTML parsers, image formats, etc... but these days those issues have mostly been dealt with, and the early adopters now have a stronger business because of longer term involvement in the medium.
The US Government is making a major investment in PKI. Which, if past experience is any guide, means that this is yet another instance of "building yesterday's solution to today's problems tomorrow." Remember GOSIP?
The greatest danger in PKI is that legislation will be passed to enforce the end of the flowchart from the lawyer's perspective: "Lie on X.509, go to jail."
Fuck Slashdot
Yes, the whole hierarchical X.509 approach was doomed from the start and needs to die. What the world really needs is the Simple Public Key Infrastructure, SPKI. This provides a way to generate certificates which transfer trust between keys in various sorts of highly flexible, controllable ways. Read the SPKI docs and you'll be converted to our religion; your whole view of naming, and of the role of a PKI, will change.
SPKI is the public key infrastructure that can actually achieve what it promises, because it doesn't have a root certificate that only God could properly hold. It's the ideas of PGP's Web of Trust taken to their logical conclusion. And it is simple, and neat, and easy to understand. Everyone interested in the problems with PKI should look into it.
--
Xenu loves you!
Either Clarke generalizes problems to all deployments of PKI, or he blames PKI for wider 'security is just plain hard' problems.
Here's some examples:
- In 3.2 he describes a long list of proposed requirements to prove identity. This is interesting, but avoids the plain fact that proving identity is not only a problem for PKI. Besides, many corporate implementations of PKI issue building-access badges to users with similar proof-of-identity requirements. Is it too much to ask to issue a smartcard at the same time? No, institutions do this today.
- He claims that PKI implies one trusted root. Wrong. Look in your browser for about 30. You can decide to trust or not trust each of them. You can add new ones.
- He claims that conventional PKI has a string of restrictions which are basically choices made by the implementor of a particular PKI deployment. Out of this list, I have only ever seen 3:
- In 4, he claims that it's possible to steal keys by breaking into a server. Again, that's up to the deployment. We recommend that keys are stored on hardware tokens. Plain and simple. Most devices do not provide for a facility to remove a key from a hardware token.
- "Private keys are susceptible to a vast array of risks, both of capture, and of invocation without the authority of, or even knowledge of, the consumer/citizen. - bunk. Plus, the rest of the paragraph doesn't really support this sentence anyway.
- In 5, he says that the Name Space has to be well managed and requires cooperation of different entities. Not true. Thawte and Verisign did not have to cooperate before because they had different roots. This is a point he doesn't seem to understand at all.
- dot, dot, dot
...
There are many ways to set up a PKI. You can set up a PKI with any or all of the problems Clarke cites. That would be the wrong way- "a certificate that expressly claims to 'bind' the key to a person" - this depends on how well the RA authenticates the user. An intrinsic problem with any organization issuing credentials - not just PKI.
- little or no choice as to who will issue the token - This is understandable, since the PKI group in an organization will typcially have determined the most appropriate security class of tokens for the deplyoment.
- Little or no choice in the organisation from which the individual acquires a certificate - again, up to the individual deployment.
All of the other items are plain not true. And any organization who does keygen on behalf of a user is plain dumb.With a little more work, his paper could have been a very constructive HOWTO, to inform the reader how to set up a good PKI. However, he just rants on about problems, none of which are unique to PKI, without providing the solutions, most of which are well known.
His paper should be titled "Pitfalls to avoid when setting up a PKI".
The PKI movement has been riddled by ita own complexity ever since its beginning.
The problem with PKI is that it depends on a common trusted root, and a global namespace. It is also hampered by crude certificate revocation methods.
There is a movement towards a simpler PKI, SPKI, which addresses all those isues. Of course, there will be need for co-operation between about the both approaches.
See Carl Ellison's page for more great info, especially a thorough comparison of approaches.
Being "out of date" here has nothing to do with it; the issues are based on what approach is used. Various approaches must be based on distinct underlying concepts behind privacy/encryption.
If you read the article -- especially towards the end, where the author discusses alternatives -- you learn that the danger discussed lies in the association of one specific ID to one specific person/entity. This is compounded by having keys held by single, hierarchical, authoritarian entities (thus available in principle to gov't agencies/commercial entities).
Rather than attempt to reduce risk by this approach, the author recommends a more realistic approach such as that implemented (however well or badly) by PGP: Use a "degree of risk" assessment, and facilitate multiple, decentralized assignments of person/entity to various semi-secure ID's.
The article makes me sad, because one of my battles in everyday life is to try to bring together the disparate aspects of my "self," but I fully understand why I probably should utilize multiple "nyms" if I want both to post stuff in forums like this, and be employed again at some future time! Until we live in a more trustworthy society, I am probably safer (i.e., more viable as an economic organism) with multiple identities. sigh....