Live data from Hacker News

Show HN: Lockenv – Simple encrypted secrets storage for Git

github.com

31–35 of 35 posts

Re: Show HN: Lockenv – Simple encrypted secrets storage for Git

#31

The main problems with these kinds of in-repo vault solutions: - Sharing encryption key for all team members. You need to be able to remove/add people with access. Only way is to rotate the key and only let the current set of people know about the new one. - Version control is pointless, you just see that the vault changed, no hint as to what was actually updated in the vault. - Unless you are really careful, just on…

git-crypt solves all 3 (mostly)

> Sharing encryption key for all team members

you're enrolling a particular users public/key and encrypting a symmetric key using their public key, not generating a single encryption key which you distribute. You can roll the underlying encryption key at any time and git-crypt will work transparently for all users since they get the new symmetric key when they pull (encrypted with their asymmetric key).

> Version control is pointless

git-crypt solves this for local diff operations. for anything web-based like git{hub,lab,tea,coffee} it still sucks.

> - Unless you are really careful, just one time forgetting to encrypt the vault when committing changes means you need to rotate all your secrets.

With git-crypt, if you have gitattributes set correctly (to include a file) and git-crypt is not working correctly or can't encrypt things, it will fail to commit so no risk there.

You can, of course, put secrets in files which you don't chose to encrypt. That is, I suppose, a risk of any solution regardless of in-repo vs out-of-repo encryption.

Re: Show HN: Lockenv – Simple encrypted secrets storage for Git

#32

I understand the thought but my honest advice is: do not commit secrets to git, even if they are encrypted. Secrets are not configuration, they are state (and I would say, an even stricter form of state that should ideally only exist at runtime in memory).

it strikes me as reasonable for 1-10 people teams (well, small businesses).

the real problems/risks only creep up for mid to big size businesses, which i don't think the tool is concerned with.

from my understanding the big problems would be:

- auditing/leaking risks that come with bigger headcount/turnover - bad uncontrolled use & problems with policy - operational inertia when problems happen

these are not real for most (healthy) small teams.

the really touchy problem is decryption key management and running state management.

Re: Show HN: Lockenv – Simple encrypted secrets storage for Git

#33

I understand the thought but my honest advice is: do not commit secrets to git, even if they are encrypted. Secrets are not configuration, they are state (and I would say, an even stricter form of state that should ideally only exist at runtime in memory).

it strikes me as reasonable for 1-10 people teams (well, small businesses). the real problems/risks only creep up for mid to big size businesses, which i don't think the tool is concerned with. from my understanding the big problems would be: - auditing/leaking risks that come with bigger headcount/turnover - bad uncontrolled use & problems with policy - operational inertia when problems happen these are not real for…

Consider even just the chance that at some later point you want to remove the secrets. Now you have to rewrite history and also force that on all contributors.

Re: Show HN: Lockenv – Simple encrypted secrets storage for Git

#34

Earlier quoted context omitted.

it strikes me as reasonable for 1-10 people teams (well, small businesses). the real problems/risks only creep up for mid to big size businesses, which i don't think the tool is concerned with. from my understanding the big problems would be: - auditing/leaking risks that come with bigger headcount/turnover - bad uncontrolled use & problems with policy - operational inertia when problems happen these are not real for…

Consider even just the chance that at some later point you want to remove the secrets. Now you have to rewrite history and also force that on all contributors.

at that point keep them in there, quit using the "secrets in repo" strategy from now on and rotate all your secrets in your new vault.

you also have the option to cut a new repo. it's a small team, you don't have behemoth inertia.

(secrets in repo if your code is open-sourced is indeed not a good idea at any scale. it's also a bad idea if your secrets cannot be easily meaningfully rotated, like putting your social security number in a secret.)

Re: Show HN: Lockenv – Simple encrypted secrets storage for Git

#35

The main problems with these kinds of in-repo vault solutions: - Sharing encryption key for all team members. You need to be able to remove/add people with access. Only way is to rotate the key and only let the current set of people know about the new one. - Version control is pointless, you just see that the vault changed, no hint as to what was actually updated in the vault. - Unless you are really careful, just on…

Here's another one:

- using a third party tool to read and store credentials is an attack vector itself.

Post reply on HN