[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Transparency into private keys of Debian



Code signing is not equal to code signing. There are a lot of
differences between different code-signing strategies, many of which
are often overlooked.

Example:

I. Typical Windows case

1. Third-party developer gets a key from a CA.
2. Third-party developer signs a program binary.
3. The user obtains the program.
4. The signature is checked at execution time.
5. The signature has to be secure for many years if not decades.
6. The user has to figure out whether he has the latest version.
7. Revocation is an unreliable mess.

One could even say that this strategy of code signing is literally
useless, because malware can always just exploit a signed binary of an
outdated version with known vulnerabilities.

II. Typical Debian case

1. Debian developer signs source tarballs and upload them
2. The signature only has to be secure until the code lands in the FTP
3. Debian builds the binary packages
4. Debian creates Release files with hashes of the packages
5. The Release file is signed by Debian APT keys
6. The signature has to be secure until the next Release file
7. Security updates have a separate Release file with expiration time

This strategy effectively prevents attackers from injecting outdated
programs with known vulnerabilities into the updates. Even mirrors
cannot do that. TLS for mirrors is not required for integrity and
authenticity.

Secure Boot is a different issue. From the security vulnerabilities
which are being published, it looks to me that it has the same problem
with malware exploiting vulnerable binaries with valid signatures.

Regards
Stephan


PS: Another related discussion is about very old package uploads and
the corresponding (expired, inactive, weak, etc.) developer signatures.

https://lists.debian.org/debian-devel/2023/12/msg00000.html

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: