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

Handle SPIFFE trust bundle rotation #24

Open
mikhailswift opened this issue Feb 4, 2021 · 1 comment
Open

Handle SPIFFE trust bundle rotation #24

mikhailswift opened this issue Feb 4, 2021 · 1 comment
Assignees

Comments

@mikhailswift
Copy link

mikhailswift commented Feb 4, 2021

Currently the root and intermediates to establish a functionary’s chain of trust are part of the layout. The layout is then signed and used during verification that all functionaries belong to the established chain of trust.

Since SPIRE can rotate all parts of a trust domain’s bundle, including its root, it’s possible that the chain of trust in a layout may not actually match the chain of trust provided by our SPIRE server.

Not having any part of the chain of trust as part of our signed layout is incredibly insecure as anyone would be able to create a set of certificates that could satisfy the constraints and fraudulently act as functionaries.

If our SPIRE server uses an upstream root, we could add the root to the layout and provide the set of intermediates in the trust bundle at verification time to establish functionaries chain of trust to the root.

If our SPIRE server does not use an upstream root, then I am unsure of a good solution. Signing a layout on the fly feels bad and opens more potential to attack.

@mikhailswift mikhailswift self-assigned this Feb 17, 2021
@mikhailswift
Copy link
Author

Going to start work on grabbing trust bundle and using that to establish the signer's chain of trust to the layout's root at verification time.

This won't handle the case where our bundle has expired and was rotated between signing and verification, will punt on that til we solve #23

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

1 participant