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

Make node TLS certificates totally ephemeral #2098

Closed
kostko opened this issue Sep 16, 2019 · 1 comment · Fixed by #2675
Closed

Make node TLS certificates totally ephemeral #2098

kostko opened this issue Sep 16, 2019 · 1 comment · Fixed by #2675
Assignees
Labels
c:security Category: security sensitive

Comments

@kostko
Copy link
Member

kostko commented Sep 16, 2019

Node TLS certificates used for authenticating gRPC connections should be made totally ephemeral (e.g., regenerated periodically while the node is running) and validity of such certificates should be shortened (e.g., regenerate every X epochs, valid for ~X+1 epochs).

Care needs to be taken to not make the node unreachable until the next epoch transition as currently the other nodes will only update their local cache on an epoch transition.

The transition could look like this:

  • Certificate K is in use and registered.
  • Epoch X-1: Certificate K' is generated but not yet in use (K is still in use). Node registers {K, K'} as valid certificates.
  • Epoch X: Certificate K' is now in use, K is erased. Node registers {K'} as a valid certificate.

This would give enough time for propagating the updated certificate. Care must be taken to properly propagate these changes when using Sentry gRPC nodes.

For dynamically supplying certificates to the gRPC server we can use the GetCertificate callback in the tls.Config structure.

@kostko kostko added the c:security Category: security sensitive label Sep 16, 2019
@kostko kostko mentioned this issue Dec 5, 2019
2 tasks
@kostko
Copy link
Member Author

kostko commented Jan 17, 2020

Care needs to be taken to not make the node unreachable until the next epoch transition as currently the other nodes will only update their local cache on an epoch transition.

Related to #1794 (comment).

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

Successfully merging a pull request may close this issue.

2 participants