Sigstore protects Apt archives: apt-verify and apt-sigstore
blog.josefsson.org
blog.josefsson.org
Debian packages are already gpg signed. Majority (and Debian is working toward the goal of all) packages have reproducible builds. Their CI system even automatically does multiple consecutive builds of packages to automatically detect issues with reproducibility. So, in the majority of cases, you can verify that the binary package you installed matches the source package it is claimed to be built from.
You have to go to extra effort to install an unsigned package / package that fails signature verification with what currently exists. So, you are not going to accidentally install a package that fails signature verification with just the current protections in place.
So, am I missing something? Or, does this new thing add nothing to the protections that are already present by default?
That the server cannot provide malicious response X to just the victim, while looking innocent to others. Certificate Transparency forces the signer to publish the fact that they sign something, leading to such attacks being noticeable, in the sense that "there was an extra thing signed and it's not the usual thing".
With TLS, the idea is that big corporations can tail the CT log and make sure there have been no extra certificates created for their domains.
(I can't vouch for whether this work achieves that goal. Something needs to check the inclusion proof in the client, before trusting the data. Auditors need to tail the CT log.)
I'm guessing the genesis was since Debian already checked package hashes to ensure no download issues, adding a cryptographic signature to the file containing those hashes was an easy, minimal change that would not break existing clients that didn't know to check it.
Off repo is a use case that IMO should be strongly discouraged (as should adding random repos), but to your point, if you have no choice, a per-package sig would be useful.
Because of reproducible builds?
But what kind of magic signature do you want to know that the code you're running matches the source, if the software is closed source and you have no access to the source?
Your requirement makes no sense. Are you a product manager? :D
If your supplier doesn't sign them… take it with them?
Sigstore in general? A fancy, colorful website that GPG does not have.
There’s something to be said to have the same pgp key sign a contributor license agreement, that pgp key signs the commits, that pgp signs the release artifacts, same key with an ssh subkey accesses build servers. Using key base we can see what keys control related Social media and emails.
Honestly the _only_ thing missing of an immutable chain for releases hashes.
Now get off my lawn.
Also, apt itself is supposed to be protected by distro’s key, but did any distro ever wrote how master keys are securely stored? Is there any other reasonable way to know that apt and entire Linux supply chain hasn’t been compromised already?
I know how to run them from a container or even a VM and use X client-server architecture to isolate them - that's how it should be. To set it up, though, requires time and careful considerations and knowledge of many things. I may have most of the knowledge, but not the time. And then again, a malicious vendor has many different ways to fool the system, yet as a user one only has to make a single mistake to allow them to do what they intended to do -- as opposed to preventing it.
So the larger problem isn't signatures. It's the loopholes and vulnerabilities, introduced intentionally or by negligence, that have the potential to compromise an OS. Almost all software should be isolated from the filesystem or any other information that would allow it to uniquely identify your machine (like why the hell does Google Chrome need to know my webcam model and possibly its serial number, which fonts are installed, my GPU and CPU models and a ton of other things?). By the same token, all software shall have no network access UNLESS it's enabled explicitly and one should also be able to block browsers or any other software (including your operating system) from sending telemetry -- by blocking all possible ip-addresses & domain names that aren't associated with the same websites you visit or when some other software truly requires such access. And, frankly, I wish I didn't have to spend hours and days setting up firewalls and closing up all those holes. It isn't because I have things to hide. It's because it's simply wrong. If you need a shallow reason why, I'll give you one: I pay for electricity and for my internet access. No software vendor, open-source or not, for good reasons or not so good reasons, shall have the right to send a network request and, thus, send or receive data from the network without my explicit permission. That has to be the default.
Update: and if they're allowed to send telemetry (again, by users themselves and explicitly) users should have the key to inspect the encrypted data that's being sent before it is sent. My machine, my rules. The irony is that the non-free, proprietary operating systems abuse privacy rights even more than the open-source ones, while I'd actually pay for the opposite happily if someone would design a system that is provably non-malicious, has the properties described above and doesn't require a lot of time and effort to achieve the desired things related to privacy and security.