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

A password-checking secret backend. #1901

Closed
tveastman opened this issue Sep 18, 2016 · 1 comment
Closed

A password-checking secret backend. #1901

tveastman opened this issue Sep 18, 2016 · 1 comment

Comments

@tveastman
Copy link

This is an idea for a username/password storage backend for Vault, specifically for authentication by another service (such as a web-app).

The idea would be to reduce the chance of password DB dumps or leaks by providing only two possible operations:

  • Set a username/password pair.
  • Check a username/password pair.

The key point is there there would be no mechanism for ever retrieving the encrypted stored password, and especially not for retrieving all of them at once (as they are commonly compromised on web applications and online services.

This idea grew out of an exchange I had with Dan Kaminsky on twitter a while ago [1], but it only just occurred to me that perhaps Vault would be a good platform for implementing a system like this. If I understand correctly, there are already features in vault for storing data in Vault that is never again directly retrievable (such as the CA secret key in the PKI backend).

If there was a plugin system, I think I'd have a crack at writing something myself. I don't speak Go (yet) though, and I'm interested in your thoughts.

Cheers!

[1] https://twitter.com/dakami/status/764694476476387328

@jefferai
Copy link
Member

Hi @tveastman ,

This already exists -- check the userpass backend. Successful auth gives a Vault token but it could be restricted to not have any policies configured and a super short lifetime, so that the net effect is a simple password check that is true or false based on the presence of a returned token.

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

No branches or pull requests

2 participants