[Security] Sign releases and add SLSA provenance
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
Research direction
Start by reading .github/workflows/release.yml and tracing how release artifacts and hashes are produced. Add signing and SLSA provenance for published artifacts, then validate the workflow with a pre-release and document verification in README. Done means releases include verifiable signatures and provenance.
Written by the indexing model from the issue text.
Description
Issue
OpenSSF Scorecard identified that releases are not cryptographically signed and lack provenance, scoring 0/10.
Risk Level
Medium - Unsigned releases allow potential man-in-the-middle attacks and make it difficult to verify artifact authenticity.
Current State
- Releases published without cryptographic signatures
- No SLSA provenance attestations
- Users cannot verify release artifact integrity
- Missing supply chain transparency
Recommendation
Implement release signing and SLSA provenance for all published artifacts.
Option 1: Sigstore/Cosign (Recommended)
Use keyless signing with Sigstore for simplicity and transparency:
GitHub Actions Integration:
- name: Sign release artifacts
uses: sigstore/cosign-installer@v3
- name: Sign artifacts with cosign
run: |
cosign sign-blob --yes \
--bundle cosign.bundle \
tar-diff-linux-amd64
Benefits:
- No key management required (uses OIDC)
- Signatures stored in public Rekor transparency log
- Widely adopted in cloud-native ecosystem
Option 2: SLSA Provenance Generator
Add build provenance using GitHub's SLSA generator:
- uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.9.0
with:
base64-subjects: "${{ needs.build.outputs.hashes }}"
Benefits:
- Documents build process and dependencies
- Achieves SLSA Level 3 compliance
- Verifiable build reproducibility
Option 3: GPG Signing (Traditional)
Use GPG keys to sign releases:
- Requires secure key storage and management
- More operational overhead
- Well-established in many ecosystems
Recommended Implementation
Combine both approaches:
- Use Cosign for artifact signing
- Use SLSA Generator for build provenance
- Publish signatures alongside release artifacts
- Document verification process in README
Steps to Implement
- Add Cosign signing to
.github/workflows/release.yml - Integrate SLSA provenance generator
- Update release process to include signature verification instructions
- Test with a pre-release to validate workflow
- Document how users can verify signatures
Verification Instructions (for users)
Once implemented, users can verify releases:
# Install cosign
go install github.com/sigstore/cosign/v2/cmd/cosign@latest
# Verify signature
cosign verify-blob \
--bundle cosign.bundle \
--certificate-identity-regexp="^https://github.com/containers/tar-diff" \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
tar-diff-linux-amd64
References
- OpenSSF Scorecard - Signed Releases
- Sigstore/Cosign Documentation
- SLSA Framework
- GitHub SLSA Generator
- OpenSSF Scorecard Score: 0/10
Related
Part of OpenSSF Scorecard evaluation THEEDGE-4717 (overall score: 6.8/10)
- Dominant language
- Go
- Stars
- 66
- Forks
- 27
- Avg merge
- 14d 3h
- Merged PRs (30d)
- 1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from containers/tar-diff
-
Create CHANGELOG.md Open
Difficulty 2/5 Half a day Newbie friendliness 65/100
containers/tar-diff#44 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
containers/tar-diff#37 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
containers/tar-diff#104 · 1 reaction ·
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
containers/tar-diff#89 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
containers/tar-diff#87 ·
All issues in containers/tar-diff
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
-
enhancement needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
kind/cleanup
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
kubernetes-sigs/kueue#15947 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
sympozium-ai/sympozium#627 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100