-
Notifications
You must be signed in to change notification settings - Fork 44
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
Determine the organization that the signer represents at the signing time #208
Comments
I'm not sure if it's related, and I don't know if it's part of the spec (seems not) but having a counter-signature by another company (like digicert, globalsign, sectigo, etc...) to sign the timestamp where the image has initialy been signed seems very important. This is initialy the "Microsoft Authenticode" protocol, but has been standardized/extended here https://www.rfc-editor.org/rfc/rfc5816 (to use any hash mecanism instead of forcing SHA1) The idea is to say, if you sign a V1 of your image today with a cert expiring in 1yr, if you check the signature in 2yr, it remains valid.
Imaged exemple in a windows binary Maybe this point deserve another issue if it's not already covered and is not related to yours. |
Thanks @gillg for providing this useful information. It seems the purpose of countersignature is to extend the valid period of the original signature. This issue is about how to secure the authenticity of the signer at the signing time in the signature, so that it will not be tampered by bad actors. |
Hum I see, without speaking about "bad actors" you don't want a user being able to "re-sign" an artifact (nevermind if it's the company A which sign again, or a company B which takes kind of ownership). Possible solutions :
For the chained signatures I can imagine:
As any blochain you can't prevent a full history rewrite as it remains valid, but we add flexibility to make the things clean in a "normal" use case. So :
That's a random idea, free to discuss, but that seems cover reasonably your use case. |
Side notes because I was making more tests on notation.
|
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 30 days. |
Originally posted by @priteshbandi in #148 (comment)
Explained by @shizhMSFT
"
The motivation is that the signing key of a signer may have multiple organizations associated. How to determine which organization that the signer represents at the signing time is an issue.
Here's an example, the signer has two cert chains
Company A -> Signer
andCompany B -> Signer
.Consider the following scenario:
Signer signs the artifact and associates cert chain
Company A -> Signer
to the resulted signature. In other words, the signer signs the artifact representing the company A.Signer publishes the artifact and the signature.
Adversary sees the signature and replaces the cert chain in the unprotected header with a cert chain
Company B -> Signer
.Now, from the view of verifiers, the signature is signed by the Signer, representing the company B.
This kind of attack can be mitigated by never reusing the signing key but it is better if we can sign the signing identity in the signature itself.
"
The text was updated successfully, but these errors were encountered: