Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for managing revoked certs #4034

Closed
stensonb opened this issue Dec 21, 2015 · 8 comments
Closed

Support for managing revoked certs #4034

stensonb opened this issue Dec 21, 2015 · 8 comments

Comments

@stensonb
Copy link

Authentication via x509 certs are great...until one of the certs is compromised, needs to be revoked, or is no longer required.

CRL offers a way to this by distributing a blacklist.
OCSP offers a way to verify each request's authenticity cert against a service, denying validity for certs which have been "revoked".

ETCD should support either CRL, OCSP, or both to ensure that SSL keys can be guaranteed "valid", despite being signed with a common CA.

@stensonb
Copy link
Author

Maybe this is desired approach: https://en.wikipedia.org/wiki/OCSP_stapling

@xiang90
Copy link
Contributor

xiang90 commented Jan 13, 2016

/cc @gtank

@gtank
Copy link
Contributor

gtank commented Jan 14, 2016

@stensonb Are you talking about revoking client certificates, or clients being able to check an etcd peer's certificate?

@stensonb
Copy link
Author

The case I had in mind was the revoking client certificates...

@philips
Copy link
Contributor

philips commented Jan 21, 2016

This is related on TLS authentication for the servers: #4022

@gtank
Copy link
Contributor

gtank commented Jan 21, 2016

I think dependency on an OCSP server (or being an OCSP server) is out of scope for etcd. However it would be completely reasonable for peers to check a CRL if the admin supplies one. Go provides functions for handling CRLs already, we will just need to build the logic around them.

@philips
Copy link
Contributor

philips commented Feb 8, 2016

So, the idea would be a periodic polling routine that checks the CRL URL? What happens if the CRL URL is unreachable? What is the normal policy for that?

@gtank
Copy link
Contributor

gtank commented Feb 16, 2016

I was thinking about a static/out-of-band CRL for emergency revocations. "Normal" policy for online revocation of all kinds is soft fail, which is dubiously useful (chronicled by various agl pieces, such as https://www.imperialviolet.org/2014/04/19/revchecking.html). Though it might be better in this case since we're mainly concerned about stolen client credentials and not attackers targeting the etcd peers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging a pull request may close this issue.

4 participants