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

Update Root and Targets #407

Closed
wants to merge 1 commit into from
Closed

Update Root and Targets #407

wants to merge 1 commit into from

Conversation

github-actions[bot]
Copy link
Contributor

Initializes a new root and targets

Signed-off-by: GitHub <noreply@github.com>
@asraa
Copy link
Contributor

asraa commented Sep 27, 2022

Note: Requires #408

TO VERIFY

See https://github.com/sigstore/root-signing/blob/main/VERIFIER.md

GITHUB_USER=${GITHUB_USER} ./scripts/verify.sh 407

Please check any of the following that you can:

  • We have 10 placeholder signatures on staged/root.json They should be both the [new] and [deprecated] IDs in the verify output.
  • We have 5 placeholder signatures on staged/targets.json. They should match the [new] IDs in the verify output.
  • We have 5 keys designated for root and targets roles in staged/root.json. These should match the keys in the verify output marked as [new]
  • Verify some of the key ID pairs that they identify the same public key value. See the output "To match pubkey values of..."
  • We have no delegations designated in staged/targets.json
  • The targets added in staged/targets.json contains custom metadata designating fulcio, rekor, CTFE URI's if applicable.
  • Old existing targets are present, and targets are also moved into sub-directories per usage.
  • The thresholds for root and targets role is 3 in staged/root.json
  • The expirations are in 6 months.
  • Consistent snapshot is enabled in staged/root.json
  • The versions of staged/root.json and staged/targets.json is 5.

@mnm678
Copy link
Contributor

mnm678 commented Sep 27, 2022

One concern about the expiration, otherwise lgtm

Please check any of the following that you can:

* We have 10 placeholder signatures on `staged/root.json` They should be both the `[new]` and `[deprecated]` IDs in the verify output.

yes!

* We have 5 placeholder signatures on `staged/targets.json`. They should match the `[new]` IDs in the verify output.

yes!

* We have 5 keys designated for `root` and `targets` roles in `staged/root.json`. These should match the keys in the verify output marked as `[new]`

yes!

* Verify some of the key ID pairs that they identify the same public key value. See the output "To match pubkey values of..."

* We have no delegations designated in `staged/targets.json`

yes!

* The targets added in `staged/targets.json` contains custom metadata designating fulcio, rekor, CTFE URI's if applicable.

yes!

* Old existing targets are present, and targets are also moved into sub-directories per usage.

yes!

* The thresholds for `root` and `targets` role is 3 in `staged/root.json`

yes!

* The expirations are in 6 months.

I actually see December 27 in targets (3 months)

* Consistent snapshot is enabled in `staged/root.json`

yes!

* The versions of `staged/root.json` and `staged/targets.json` is 5.

yes!

@SantiagoTorres
Copy link
Contributor

Same, all verified but I see that targets set to expire in Dec 27 (3 months)

@bobcallaway
Copy link
Member

Same, all verified but I see that targets set to expire in Dec 27 (3 months)

same

"targets": {}
},
"signatures": null
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct, to have no signatures to mark a delegation as no longer used? Or should we just not include the delegated metadata?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given this isn't referenced in the metadata, i assume deleted?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is deleted! i think go-tuf never gets rid of the file in the store: you still are required to forever persist delegation versions (to prevent rollbacks), and I think that's the reasoning @mnm678 @trishankatdatadog

Copy link
Contributor

@trishankatdatadog trishankatdatadog Sep 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessarily. You can use the root to rotate the timestamp and/or snapshot keys, which will require clients to reset any previous snapshot metadata (see 5.3.11), and so you can use this opportunity to completely delete this delegation.

}
}
},
"fulcio.crt.pem": {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To confirm, this is correct, that we want the targets duplicated under top level and nested under a folder?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't want to immediately break sigstore-rs: sigstore/sigstore-rs#134

but with the updated paths we can allow them to migrate and deprecate the old regexes

@asraa
Copy link
Contributor

asraa commented Sep 27, 2022

I have a feeling I know why the expiration changed: likely due to the reset delegations not passing our custom expiration

@asraa asraa closed this Sep 27, 2022
@asraa asraa deleted the init-root-targets branch September 27, 2022 22:40
@asraa asraa mentioned this pull request Oct 3, 2022
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

Successfully merging this pull request may close these issues.

6 participants