-
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
[Poll] When should we verify the timestamp signature? #301
Comments
I vote for option 1. |
I vote for option 1 |
Bearing in mind that the industry is driving to short lived certificates, I like the predictability of Option 2. My vote is Option 2. |
I'm voting as Notation subproject maintainer. My vote goes to option 1. |
I'm voting for option 2. I'd prefer failing fast with option 2 as the default behavior. When we discuss how trust policy interacts with timestamp signatures, we can discuss options for verifiers to set their preferences for timestamp signature verification. |
Thanks @priteshbandi for starting this poll. Per Monday's meeting discussion, I would like to clarify more backgrounds to this poll. This poll is not intended to decide to choose only one option and drop another one. It is intended to determine a reasonable default behavior of timestamp signature verification in Notary Project. It would be flexible if we make the timestamp signature verification configurable by providing a configuration We could determine an appropriate default value (verification behavior) of the timestamp signature verification configuration via this poll.
I vote for making option 1 as the default behavior. /cc @notaryproject/notaryproject-notation-maintainers |
If we plan to introduce additional trust policy switches (I'm in favor of that) they need to be compatible with existing behavior. For example, if I set verification level to |
I vote for option 2. @FeynmanZhou thanks for adding more context. The issues you have outlined for option2 are also applicable for option1, its just that they wont popup until signing cert expirty. |
I vote for option#2 I like the predictability and simplicity of that option. Also, it is consistent with how AuthenticTimestamps are evaluated for |
Personally, For signing certificates that are not expired, the trust source is the signing root certificate. Actually, we don't care whether timestamping works or not, because we have enough trust to ensure that the signature was signed while the certificate was valid. To ensure an authentic timestamp, we don't need a timestamp token. (This sentence is important) Then, to maintain the consistent benefit, we can also check the timestamp token but without checking the revocation of the timestamp certificate. Let me explain the reason: by checking the timestamp certificate, we can ensure that the user's trust policy and trust store are correct. If they are not correct, we should output a warning to encourage the user to update their configuration rather than failing the verification. We do not check for revocation because, currently, the trust source is the signing root certificate. When the signing certificate has expired, we should shift the trust source to the timestamp certificate to maintain the authentic timestamp requirement. As a result, I maintain my vote for |
I'm voting for option 2. I'd prefer failing fast with option 2 as the default behavior. |
@priteshbandi as a follow-up from last meeting, would you mind adding the four cases you shared during the meeting, so that we can continue the discussion under this issue, especially for case 2. |
Here are four scenarios involving trust policies and timestamp signatures. For each scenario, we must specify the behavior for parameter
|
@priteshbandi you might want to take a look at this flow chart: https://github.com/notaryproject/specifications/blob/8f0be6a5228e16b5079c09266f944977051526cb/specs/trust-store-trust-policy.md#timestamp-countersignature-verification-details
|
Close this issue as competed. |
Context
NotaryProject is considering adding support for timestamp signatures. This would enable users to verify the authenticity of images even after the signing certificate has expired. During the meeting hend on May 13th, the following options were discussed for handling timestamp signatures:
Option 1: Only Verify Timestamp Signatures if the Signing Certificate Has Expired
The verification operation will evaluate timestamp signatures only when the signing certificate has expired. Essentially, if the signing certificate is still valid, the verification operation wont evaluate timestamp signature. However, once the signing certificate expires, the verification operation will start validating of the timestamp signature.
Pros:
Cons:
Scenario 1: Invalid/incorrect TSA trust store configuration by the verifier.
Scenario 2: Corruption of the timestamp signature during signature generation or transmission.
Scenario 3: Failure to configure network policies to allow OCSP/CRL calls for timestamp signature verification.
Scenario 4: Increased verification workload (network call, computational cycles, latency) after the signing certificate expires, potentially resulting in unforeseen failures.
In abovescenarios, signature verification succeeds until Day T but unexpectedly begins to fail on Day T+1. Furthermore, there is no straightforward method for the verifier to proactively detect these failures.
Option 2: Always Validate Timestamp Signatures (if Present)
The verification operation will always validate timestamp signature if it was added during signing, regardless of the signing certificate's expiry.
Pros:
Cons:
To summarize , both options offer equivalent security measures, with the trade-off being additional workload that mitigates fragility/brittleness against some potential availability tradeoff.
Please provide feedback by Thursday, May 16th, to assist in deciding which option to implement.
cc: @shizhMSFT, @NiazFK, @toddysm, @vaninrao10, @yizha1, @gokarnm, @yizha1
Related Slack conversation: https://cloud-native.slack.com/archives/CQUH8U287/p1715294129223819
Related Meeting Notes: https://hackmd.io/_vrqBGAOSUC_VWvFzWruZw?view#May-13-2024
The text was updated successfully, but these errors were encountered: