←back to thread

151 points fastest963 | 4 comments | | HN request time: 0.62s | source
Show context
hoistbypetard ◴[] No.45772532[source]
My instant reaction was: "Wait?! They weren't immutable before?"

I'm glad they're doing this, and it's an unpleasant surprise that they didn't already work this way. I don't understand why they allow mutable releases.

replies(6): >>45772557 #>>45772741 #>>45772761 #>>45773634 #>>45773953 #>>45774010 #
hk1337 ◴[] No.45772741[source]
Git tags aren’t even really immutable, they’re treated as such but they’re not.
replies(2): >>45773059 #>>45774860 #
1. westurner ◴[] No.45773059[source]
GitHub docs > Signing tags: https://docs.github.com/en/authentication/managing-commit-si... :

> You can sign tags locally using GPG, SSH, or S/MIME

  $ git tag -s MYTAG -m "Signed tag"
  # Creates a signed tag

  $ git tag -v MYTAG
  # Verifies the signed tag
Git book > 7.4 Git Tools - Signing Your Work: https://git-scm.com/book/ms/v2/Git-Tools-Signing-Your-Work :

  $ git commit -S -m 'Signed commit'
replies(1): >>45773099 #
2. jayknight ◴[] No.45773099[source]
But you can still delete and recreate/sign the same tag again.
replies(2): >>45774432 #>>45774514 #
3. TingPing ◴[] No.45774432[source]
But GitHub has the option to prevent this. Just like branches.
4. westurner ◴[] No.45774514[source]
Sigstore.dev supports revocation:

"Don’t Panic: A Playbook for Handling Account Compromise with Sigstore" (2022) https://blog.sigstore.dev/dont-panic-a-playbook-for-handling...

"Why you can’t use Sigstore without Sigstore" (2023) https://blog.sigstore.dev/why-you-cant-use-sigstore-without-... :

> Revocation in Sigstore. A recent post on this blog notes that signatures alone don’t tell you whether to trust an artifact; for that, you need a verification policy. This verification policy is a much more natural place to handle revocation than the identity layer; see Don’t Panic for an example. This allows us to avoid the scalability problems of global revocation lists (see CRLite for a discussion of these issues). The mantra here is revoke artifacts, not keys.

Artifact Attestation > Verifying an artifact attestation for binaries: https://docs.github.com/en/actions/how-tos/secure-your-work/... :

  gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R orgname/reponame
If it is not possible to retract/revoke releases then, there again, the installer MUST verify against a signed list of revoked releases