Conversation

They're signed so that someone can come along, clone the sources and verify that those are genuinely our releases. It's not signed for our own usage. The signed tags are pushed after we've already finished using the sources for that release since our builds are ready for release.
1
2
Yes, so it would make sense for us to be rotating the key and signing them all with a new key so that it's possible for people to verify a historical archive of the sources. We don't want to attest to everything that might be in a Git repository being genuine, just specific tags.
1
2
The tags are our long-term archive of the sources. The vast majority of the repositories are downstream forks with patch sets to upstream code that are ported to each new stable release. It's regularly rebased to keep it as a clean sensible patch set that's actually maintainable.
1
1
For those downstream forks, they're based off of upstream stable tags based on stable branches. There's usually an underlying upstream stable branch that switches every few months to a new one without the past few stable tags in the history since it diverged at a different point.
1
Then there are the yearly major releases (for Chromium, every 6 weeks) where we have to port to a drastically different base OS. The upstream tags are also signed for a similar reason. Due to lack GPG support for rotation, the keys for signing new tags essentially never change.
1
Due to how Git does it, you also have no way to publish new signatures for the older tags. The value of those signatures will decline over time. Git's signed commit / tag support is also based on signing a SHA-1 hash chaining to others which is problematic and needs replacement.
2
1
A private key that remains in use has endless opportunities to be compromised over time. It's best practice to regularly rotate to a new key with a proof that it's an authorized key rotation from the old key. Migrating to the new key everywhere should get handled automatically.
1
That can happen because of legacy cryptography having vulnerabilities discovered. GPG fingerprints are based on SHA-1. At some point, maybe someone can make a key with the same fingerprint. At some point, the RSA 4096 algorithm I chose many years ago for my key may be insecure.
1
1
It's possible that at some point throughout the years, my GPG private key was compromised. I don't think it's the case, but it's possible. Since I can't painlessly rotate to a new key, I might as well switch to better tools at the same time and then start doing regular rotations.
1