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

Implement at-rest encryption for Keys #11

Open
lstoll opened this issue Jul 8, 2019 · 3 comments
Open

Implement at-rest encryption for Keys #11

lstoll opened this issue Jul 8, 2019 · 3 comments

Comments

@lstoll
Copy link
Contributor

lstoll commented Jul 8, 2019

We should have an optional at-rest encryption method for private key data that is persisted in the storage.

@alindeman
Copy link
Contributor

alindeman commented Jul 23, 2019

@lstoll Do you think it'd be too taxing if we just encrypted every value in storage, if the storage is configured that way? Or do you think we need some way to differentiate between non-encrypted and encrypted values?

@lstoll
Copy link
Contributor Author

lstoll commented Jul 23, 2019

Probably not, really. It would make manually reading data from the DB slightly harder, but we shouldn't be doing that anyway.

One thing to consider is the lifecycle of keys for rotation - right now, we rotate signer regularly so rotating an encryption key would take affect in a known window. If we do everything, how would we handle an encryption key rotation for a value in storage that lives forever? Definitely something solvable later, just worth a thought.

@alindeman
Copy link
Contributor

Probably not, really. It would make manually reading data from the DB slightly harder, but we shouldn't be doing that anyway.

Cool.

One thing to consider is the lifecycle of keys for rotation - right now, we rotate signer regularly so rotating an encryption key would take affect in a known window. If we do everything, how would we handle an encryption key rotation for a value in storage that lives forever? Definitely something solvable later, just worth a thought.

That's fair. Maybe we have a subcommand that rekeys everything with the latest key, which we use when we rotate the key?

I'm not necessarily sold on it, but it would maybe be easier to just transparently encrypt everything than introduce it as a client-specified option everywhere.

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