Live data from Hacker News

Vault – A tool for managing secrets

hashicorp.com

11–20 of 112 posts

Re: Vault – A tool for managing secrets

#11
Interesting indeed! But I couldn't find anything on the website or documentation about how secrets are encrypted?

The security page seems to be a generic one about reporting vulnerabilities: http://vaultproject.io/security.html

Edit: Found it under the threat model section here: https://vaultproject.io/docs/internals/security.html

Re: Vault – A tool for managing secrets

#12

Interesting indeed! But I couldn't find anything on the website or documentation about how secrets are encrypted? The security page seems to be a generic one about reporting vulnerabilities: http://vaultproject.io/security.html Edit: Found it under the threat model section here: https://vaultproject.io/docs/internals/security.html

the blog post mentioned AES-GCM 256bit

Re: Vault – A tool for managing secrets

#13

Interesting indeed! But I couldn't find anything on the website or documentation about how secrets are encrypted? The security page seems to be a generic one about reporting vulnerabilities: http://vaultproject.io/security.html Edit: Found it under the threat model section here: https://vaultproject.io/docs/internals/security.html

See: http://vaultproject.io/docs/internals/security.html

Re: Vault – A tool for managing secrets

#14
post #3

[deleted]

Check out the ACL RFC [1] which has been developed and is now available for testing in the first alpha of etcd v2.1.0 [2], we'd love your feedback.

[1] https://coreos.com/etcd/docs/2.0.8/rfc/api_security.html [2] https://github.com/coreos/etcd/releases/tag/v2.1.0-alpha.0

Re: Vault – A tool for managing secrets

#15
post #3

[deleted]

(EDIT: I appear to be replying to a edited comment that was mentioning a possible naming confusion with ansible vault, I'll keep the post here even though the original is different now)

re: naming (and disclaimer): I wrote Ansible and designed Ansible's vault (and no longer work on Ansible), but to be clear, Ansible's vault is a nicer CLI (IMHO) around an idea that Chef users were already used to: encrypted data bags. It was nothing new. It took about two weeks to implement, but we had a few security things to shake out after that made it take a bit longer before it got right. (Some people also got picky about whole-data-document encryption vs leaf-node-in-datastructure encryption, and I see points for doing it both ways, but went with the way that revealed the least amount of data)

I think calling it vault is perfectly fair, as it's a very generic word, and words are in short supply. This is also doing a LOT more.

I like what Mitchell and crew have done around revocation here, though I do somewhat wonder about the mode in the docs that sets secrets and allows them to show in bash history, which is why ansible vault spawned an editor. I'm sure it's got editor options too though. I'd probably also change the phrasing "HTTP API" to "HTTPS API" :)

The dynamic secret stuff also looks pretty interesting.

One of the interesting ideas might be to whether it allows sharing of secret values to some applications without letting someone read it (asking if a user can use X without letting the user READ x), which is something we did in tower - though it seems the ACL system might allow something like that. An example of that was the system could memorize an SSH key and let a team use it, but never give it to anyone, to avoid rotation scenarios.

Anyway, all the lease ideas are very cool and it seems natural to want this decoupled. For a time I considered decoupling what what in Ansible vault from Ansible, though really it already operates on generic files so that's easy enough if someone wanted to take a stab at it.

I suspect it wouldn't be impossible to make Ansible Vault have a hashicorp-vault-mode where it encrypts a file "into" the vault, and the contents that remain in your "ansible vault" file are nothing more than a pointer to a secret in Hashicorp Vault. In this way, it would just be another cipher type. Maybe that's crazy though - but I think I like that better than storing secrets in version control, where they exist forever unless you prune history. (And I never thought storing vault files in public source was a good idea). However, avoiding a server or database was always one of Ansible's design goals - for better or worse, that limited some of the things the core app could do, in ways that were both good and also occasionally limiting.

Anyway, keep up the forward progress with the new things! I really envy the time to architect/design something so detailed here.

Re: Vault – A tool for managing secrets

#17
post #13

Interesting indeed! But I couldn't find anything on the website or documentation about how secrets are encrypted? The security page seems to be a generic one about reporting vulnerabilities: http://vaultproject.io/security.html Edit: Found it under the threat model section here: https://vaultproject.io/docs/internals/security.html

See: http://vaultproject.io/docs/internals/security.html

Found it, thanks.

Re: Vault – A tool for managing secrets

#18
There are many solutions out there that attempt to solve the secrets distribution problem. Vault is the newest one. None of them solve the fundamental problem of the secret zero: provisioning the first secret on an untrusted system the automated way is hard, and without that secret zero, there is no way to authenticate the new system.

With Vault, you still need to figure out how to push secret zero (here a client authentication token). If you can solve that, why not push the secret you need to push directly, and bypass Vault entirely?

Re: Vault – A tool for managing secrets

#19
post #18

There are many solutions out there that attempt to solve the secrets distribution problem. Vault is the newest one. None of them solve the fundamental problem of the secret zero: provisioning the first secret on an untrusted system the automated way is hard, and without that secret zero, there is no way to authenticate the new system. With Vault, you still need to figure out how to push secret zero (here a client aut…

We worked with a handful of companies to help us design the "App ID" authentication backend that does exactly that: https://vaultproject.io/docs/auth/app-id.html

It allows you to have a non-sensitive single factor within things like configuration management, and have the second factor come from a machine-local location (instance ID, MAC address, TSM module, etc.). The idea is that another team out of band sets the 2nd factor that developers and config management never get to see. The result is you have full automation without secret zero issues.

As an additional security parameter, you can bind the two factors together to a single CIDR block, so you can have an additional factor restricting access from that machine's IP.

The URL itself above goes into a lot more detail, but our beta users are successfully automated in an elastic environment this way.

Re: Vault – A tool for managing secrets

#20
post #18

There are many solutions out there that attempt to solve the secrets distribution problem. Vault is the newest one. None of them solve the fundamental problem of the secret zero: provisioning the first secret on an untrusted system the automated way is hard, and without that secret zero, there is no way to authenticate the new system. With Vault, you still need to figure out how to push secret zero (here a client aut…

We've had the same issues at CoinJar, and we used SSH agent forwarding to solve it. This is how it can work:

Every new instance of application server is provisioned automatically by a trusted server (which holds the key to a credentials server). During orchestration/deployment, the application server has a temporary permission to fetch the secrets it needed, through SSH agent forwarding. Once the deployment is done, the session will end and the application server can never read new secrets until the next deployment.

This way we don't really need a solution like Vault. SSH is mature enough to provide authentication, and encryption is easy once you've figured out how to distribute keys automatically.

Post reply on HN