3 ms·
Looks interesting. There is definitely a need for something secure to manage secrets easily & efficiently. I'm not super familiar with Shamir's secret sharing.
by carllerche 11y ago
Looks interesting. There is definitely a need for something secure to manage secrets easily & efficiently.
I'm not super familiar with Shamir's secret sharing. The post says that the master key is split up across a number of people. One thing that I am confused about is if Vault goes down (possibly in the middle of the night), does it require a quorum of humans to boot it back up?
- limaoscarjuliet 11y agoYes, otherwise - when keys travel with secrets - there would be absolutely no security. This is akin to disk encryption where you have to type password on boot, but then data is accessible later.
- viraptor 11y agoHaven't tried it yet, but most likely yes. But if you actually need vault and do spread the key to more than 2 people, you likely have more than one vault server running at a time.
- mitchellh 11y agoIt does. The solution to this problem is to run Vault in high availability mode[1]. This will have a set of stand-bys that can take over if the leader goes down. The idea is to unseal all the stand bys, and if the leader goes down, the standbys take over, and the sealed one can be unsealed at some other future point. Security-sensitive things have been an interesting UX challenge for us, but this compromise comes at an expense of UX for a much better security promise. As one of the other comments says around this comment: without this feature there would be no real security for the stored data. [1]: http://vaultproject.io/docs/concepts/ha.html http://vaultproject.io/docs/concepts/ha.html
- carllerche 11y agoLooks good. The post did not mention HA (that I saw), which caused the confusion.
- odiroot 11y agoWould you also recommend to set the lease duration to something higher in order to allow people to react? This way even if Vault dies during the night (and you don't have pager duty) at least some clients (e.g. your cloud instances) can live through?
- SEJeff 11y agoCan you call mlock in go to prevent any secrets from being paged to disk?
- mitchellh 11y agoWe already do this. And yes, you can (using the "syscall" package).
- btilly 11y agoShamir's secret sharing is actually fairly simple. You want to have a secret shared by n people, any m of whom can decode it. You create a polynomial of degree m, and give each of those people the value of said polynomial at a different point. The secret will be the value of the polynomial at yet another point. From the value of the polynomial at any m points you can figure out the polynomial and the secret. But the value at any m-1 points does not let you predict its value anywhere else. (Detail. You would make the polynomial be over a finite field instead of the real numbers. But the math is all the same.)