-
Notifications
You must be signed in to change notification settings - Fork 50
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
RFE: private key reference scheme #447
Comments
Very bare bones Signer for Google Cloud KMS: Private keys live in KMS, signing happens in KMS (although payloading hash happens in Signer). This is not super usable without issue secure-systems-lab#447 but demonstrates the simplicity. With 447, the usage pattern nwould be signer = Signer( "gcpkms://projects/openssf/locations/global/keyRings/securesystemslib-test-keyring/cryptoKeys/securesystemslib-test-key/cryptoKeyVersions/1", pubkey ) so all GCP specific details are in the private key URI. Key creation is not supported at this point.
Very bare bones Signer for Google Cloud KMS: Private keys live in KMS, signing happens in KMS (although payloading hash happens in Signer). This is not super usable without issue secure-systems-lab#447 but demonstrates the simplicity. With 447, the usage pattern nwould be signer = Signer( "gcpkms://projects/openssf/locations/global/keyRings/securesystemslib-test-keyring/cryptoKeys/securesystemslib-test-key/cryptoKeyVersions/1", pubkey ) so all GCP specific details are in the private key URI. Key creation is not supported at this point.
Very bare bones Signer for Google Cloud KMS: Private keys live in KMS, signing happens in KMS (although payloading hash happens in Signer). This is not super usable without issue secure-systems-lab#447 but demonstrates the simplicity. Key creation is not supported at this point. A test is added with a few caveats: * dependencies are not added to requirements.txt: this would more than triple the size of requirements-pinnex.txt... Not sure what the best path her is * Test only works on GitHub (because of the authentication) * There's a separate tox env, meaning the test only runs once per test run: this allows testing separate requirements but also makes it easier to set very low usage quotas on GCP
Very bare bones Signer for Google Cloud KMS: Private keys live in KMS, signing happens in KMS (although payloading hash happens in Signer). This is not super usable without issue secure-systems-lab#447 but demonstrates the simplicity. Key creation is not supported at this point. A test is added with a few caveats: * dependencies are not added to requirements.txt: this would more than triple the size of requirements-pinnex.txt... Not sure what the best path her is * Test only works on GitHub (because of the authentication) * There's a separate tox env, meaning the test only runs once per test run: this allows testing separate requirements but also makes it easier to set very low usage quotas on GCP
Very bare bones Signer for Google Cloud KMS: Private keys live in KMS, signing happens in KMS (although payloading hash happens in Signer). This is not super usable without issue secure-systems-lab#447 but demonstrates the simplicity. Key creation is not supported at this point. A test is added with a few caveats: * dependencies are not added to requirements.txt: this would more than triple the size of requirements-pinnex.txt... Not sure what the best path her is * Test only works on GitHub (because of the authentication) * There's a separate tox env, meaning the test only runs once per test run: this allows testing separate requirements but also makes it easier to set very low usage quotas on GCP
Very bare bones Signer for Google Cloud KMS: Private keys live in KMS, signing happens in KMS (although payloading hash happens in Signer). This is not super usable without issue secure-systems-lab#447 but demonstrates the simplicity. Key creation is not supported at this point. A test is added with a few caveats: * dependencies are not added to requirements.txt: this would more than triple the size of requirements-pinnex.txt... Not sure what the best path her is * Test only works on GitHub (because of the authentication) * There's a separate tox env, meaning the test only runs once per test run: this allows testing separate requirements but also makes it easier to set very low usage quotas on GCP
Almost complete proposal https://docs.google.com/document/d/1KQY5v1ASXpZM5GhfATV_WJf7GaMJrfBOXr06dtxc-ps -- still debating myself if I should propose a Key class as well but overall this is definitely ready for review |
FYI: There's new |
@kairoaraujo would love your input on the design here, especially:
|
I swear I wrote about it somewhere, but can't hurt to do it here too:
This fits at least the KMS use case and I think it should fit yubikeys as well. |
Taking this out of #445 as I think it makes sense in general, not just in KMS:
Idea
Let's define an identification scheme for private key materials in Signer:
sigstore ReferenceScheme
sigstore has a
ReferenceScheme
for their KMS abstraction: I think that would work for private keys in generalhttps://github.com/sigstore/sigstore/tree/main/pkg/signature/kms. There's no requirement to be 1:1 compatible with sigstore, just showing this as a reference of something we could copy.
Proposal
https://docs.google.com/document/d/1KQY5v1ASXpZM5GhfATV_WJf7GaMJrfBOXr06dtxc-ps
Review welcome here or in the doc!
The text was updated successfully, but these errors were encountered: