Why do some large, reputable open source projects not provide digital signatures for software downloads? I thought everyone did this now, but neither Golang or Postgres sign downloads they publish. Why not?
https://go.dev/dl/
https://www.postgresql.org/ftp/source/v15.0/
As counter examples, both the Linux kernel and rust sign downloads they publish:
https://kernel.org/
https://forge.rust-lang.org/infra/other-installation-methods.html#source-code
What is the reason that Google and Postgres have for not signing software downloads? MD5 and SHA256 checksums do not verify the authenticity of the downloaded software.
Once an adversary has gotten so deep in to your infrastructure that they can push an update the signing keys are mostly irrelevant since chances are they have those already.
If you are asking if each individual contributor should sign/publish their signatures for each update then yes, perhaps. But then which takes precedence - The org or the contributor? Which should/would you trust more and why? And can that prior trust be worth anything if/when either the org or the contributor goes rogue, is compromised, decides to push an obnoxious update or is rubber-hosed in to compliance?
F.W.I.W. the approach I take is to let others be the Alpha/Beta testers for any update and check out the various channels for abnormal reports. For High Severity issues I take a look at the mitigations sections and adopt those in a 'wait and see' approach.
I can imagine edge cases for both which leads to my conclusion that doing so is meritless unless you are considering nation state actors pushing an update but that then leads to the edge case of which update do you trust? And why do you trust that as the ground truth of good/not good?