Live data from Hacker News

Why is nobody using SSL client certificates?

pilif.github.io

71–80 of 160 posts

Re: Why is nobody using SSL client certificates?

#71
post #11

The whole DOD is using it, but they're on crypto smart cards, so many folks don't realize that's what they're doing. Email, single sign on, web site auth, etc. Works great!

It's easy enough to use on a smart card, but try setting that up. I'm trivialising now, but you're looking at... - Card manufacture - Key handling - Enrolment - Card lifecycle - Certificate lifecycle - Identity synchronisation You could buy a stack of white-labelled cards, of it you're the DoD you'd roll your own. That's shopping for silicon wafers, contact plate assemblies, mag stripes, holograms, RFID blanks, plast…

Enrolment is a hefty process. Apply for smart card. Personalise physical card (typically photo and name), provision (link card to user), give card to user, mail PIN to user (out of band), and then activate card.

You missed the part where you drive several hours to the closest military base and wait in line several hours(think DMV and TSA all rolled into one).

Re: Why is nobody using SSL client certificates?

#72

I always wished we could use SSL the way we use phisycal keys. They are a very good example encapsulization and easy user interface. When you use the key for your house, you look for a certian color or shape of the key. Most users don't know or care how the lock works. Why can't SSL be this way. Instead of having the end user chose a password have the browser automaticaly generate a public/private pair. For the user…

The first part, moving authentication from the user to the browser, is exactly what Mozilla's Persona is about. However, the whole "multiple device" thing kind of kills browser-level authentication (persona gets around this by allowing email accounts).

Re: Why is nobody using SSL client certificates?

#73
post #46

I'm the author of this post which I have written in 2008. Since then my views have changed a bit: for one, the added security is debatable as the client cert is easily accessible to malware and thus could easily be stolen. The other thing is that renegotiation is somewhat broken since that related security flaw in 2010ish, so you can't have parts of a site accessible without client certs and other parts requiring a c…

the malware point is moot.

malware can steals passwords saved, which are optionally saved encrypted. the cert at least in the one browser i checked is always encrypted.

and even then, if you have malware in your box, any and all security measures are worthless at this point.

decent Renegotiation and mobile client support will come if people using that on the desktop request the feature. it's like that for everything for a while now.

Managing the devices and revokation is also trivial. most sites does that very easily with API keys and cookies (e.g. google 2step auth, you can control which cookies are still valids for the 'remember this device' feature). the same logic could be used for client certs.

Re: Why is nobody using SSL client certificates?

#74
post #26

Earlier quoted context omitted.

They're as secure as your ability to keep the private keys private, just like with server certs. As far as MITM and PFS goes; that's handled just the same as regular SSL. Using a client cert doesn't affect that at all.

Which is not secure at all. you can MITM a typical SSL connection in so many ways SSL might as well not exist. No real cert validation, forged certs, proxy replays. SSL is a joke.

Most places where you can authenticate with SSL client certs allow you to add your own self-signed certificate and authenticate using that. All the validation you need is to check wether the cert is in the user's list. You can only forge that by stealing the private key.

There's really no reason to only allow CA signed client certs.

Re: Why is nobody using SSL client certificates?

#75
post #7

That's just installing it on a desktop. Try installing an SSL certificate on a mobile browser.

Much easier on a smartphone managed with MDM. Some of the MDM platforms even include a pre-configured CA.

I've actually started open-sourcing some of my work in this space (MDM vendor here) https://github.com/AppBlade my CA/SCEP implementation for iOS devices is part of TestHub [WIP]. These protocols also work for OSX boxes and you don't need full MDM to get most of the benefits, so long as you accept the .mobileconfig prompt.

Re: Why is nobody using SSL client certificates?

#76
post #74

Earlier quoted context omitted.

Which is not secure at all. you can MITM a typical SSL connection in so many ways SSL might as well not exist. No real cert validation, forged certs, proxy replays. SSL is a joke.

Most places where you can authenticate with SSL client certs allow you to add your own self-signed certificate and authenticate using that. All the validation you need is to check wether the cert is in the user's list. You can only forge that by stealing the private key. There's really no reason to only allow CA signed client certs.

Thats not the question. The question is how is a cert validated properly?

For example, you can have a parent CA certificate and iOS (just as one example) will accept the child cert no questions asked.

Also if you forego CA and self sign, how do you verify your OWN cert? How? A proxy can just pass it through to your client if you use server trust.

So you have a problem, the OS cant validate your cert and you have limited means to validate your own cert. All you know is you encrypted something.

Any joe can buy a CA cert and fool iOS (just as an example) but not only that, the govt can easily forge CA keys and forge certs. So then what do you do? Your server cert can easily be forged or replayed through a proxy.

Re: Why is nobody using SSL client certificates?

#77
post #74

Earlier quoted context omitted.

Which is not secure at all. you can MITM a typical SSL connection in so many ways SSL might as well not exist. No real cert validation, forged certs, proxy replays. SSL is a joke.

Most places where you can authenticate with SSL client certs allow you to add your own self-signed certificate and authenticate using that. All the validation you need is to check wether the cert is in the user's list. You can only forge that by stealing the private key. There's really no reason to only allow CA signed client certs.

I dont mean to be rude, or create doubt, but you must realize that SSL is completely insecure.

Re: Why is nobody using SSL client certificates?

#79
post #68
post #40

Earlier quoted context omitted.

As a DoD CAC user and developer, this is correct (although the card readers at my company are built into the laptop or inserted via a USB adapter). I don't think there is a background agent that maintains the key though, I just think the card reader is queried when the certificate is needed. After the cert has been verified, you're free to pull the card out.

> After the cert has been verified, you're free to pull the card out. Last time I checked DoD systems are configured to automatically log you out of your session upon removal of your CAC.

This is an unrelated security measure, but you are correct.

And if you pull the card out, you can't access anything anymore that requires it (and on a Windows domain that DOESNT lock / terminate the session, you'll be able to access things until your kerberos ticket expires or you need to get to something you don't have a ticket for).

Re: Why is nobody using SSL client certificates?

#80
post #16

Try having two client certificates and seeing the browser UX for selecting which one to present to which site. You'll see why they aren't used. Client certificates should be much more popular in backend applications, where they're straightforward to use, flexible, and fairly trustworthy. But they're not a good end-user technology.

To your mind, is this more a matter of the particular UI that currently exists, or are the UX issues more fundamental to the technology?
Post reply on HN