Re: Update AB5FEB886DBB99C2
Vincent Mailhol <[email protected]> Thu, 28 Nov 2024 14:34:39 +0900
| Newsgroups | org.kernel.linux.keys |
|---|---|
| Message-ID | <CAMZ6RqLPPZyUqA-j5GegJ_Mk8tM7AFF7Ud=eD5aRDS9CUjGqHA@mail.gmail.com> |
On Thu. 28 Nov. 2024 at 01:02, Konstantin Ryabitsev <[email protected]> wrote: > On Thu, Nov 28, 2024 at 12:37:32AM +0900, Vincent Mailhol wrote: > > Hi, > > > > I collected a few more cross signatures. Could you update my public key > > with the one attached? Thank you. > > Updated, thanks. Great. I am all set now. > > Actually, I also wanted to confirm one thing. I uploaded my keys and all > > its cross signature on keyserver.ubuntu.com: > > > > https://keyserver.ubuntu.com/pks/lookup?search=AB5FEB886DBB99C2&op=index > > > > and so, I was expecting those cross signs to be automatically > > synchronized during the periodic update. But it did not happen. > > Indeed, looks like they don't give us the third-party signature data when we > ask for key updates: > > $ gpg --list-sigs AB5FEB886DBB99C2 > pub ed25519/AB5FEB886DBB99C2 2024-06-01 [SC] [expires: 2029-12-31] > ED8F700574E67F20E574E8E2AB5FEB886DBB99C2 > uid [ unknown] Vincent Mailhol <[email protected]> > sig 3 AB5FEB886DBB99C2 2024-10-27 [self-signature] > sig 0B0244C40D0D431C 2024-11-05 Shuah Khan <[email protected]> > sig EBC26CDB5A56DE73 2024-11-04 Steven Rostedt (Der Hacker) <[email protected]> > [...] > > $ gpg --keyserver keyserver.ubuntu.com --recv-key AB5FEB886DBB99C2 > gpg: key AB5FEB886DBB99C2: "Vincent Mailhol <[email protected]>" not changed > gpg: Total number processed: 1 > gpg: unchanged: 1 > > I only get your latest signatures when I import what you sent in: > > $ gpg --import keys/AB5FEB886DBB99C2.asc > gpg: key AB5FEB886DBB99C2: "Vincent Mailhol <[email protected]>" 3 new signatures > gpg: Total number processed: 1 > gpg: new signatures: 3 > > This is normal, though -- very few keyservers still provide third-party > signature data after the attacks on that functionality a few years ago. The reality is a bit more nuanced. If I add the --verbose option, I get: $ gpg --verbose --keyserver keyserver.ubuntu.com --recv-key AB5FEB886DBB99C2 gpg: data source: http://185.125.188.26:11371 gpg: armor header: Comment: Hostname: gpg: armor header: Version: Hockeypuck 2.2 gpg: key AB5FEB886DBB99C2: number of dropped non-self-signatures: 6 gpg: pub ed25519/AB5FEB886DBB99C2 2024-06-01 Vincent Mailhol <[email protected]> gpg: key AB5FEB886DBB99C2: "Vincent Mailhol <[email protected]>" not changed gpg: Total number processed: 1 gpg: unchanged: 1 So, the client received six non-self-signatures, but decided to drop them. Which is consistent with what the documentation has to say: The default list of options is: "*self-sigs-only*, import-clean, repair-keys, repair-pks-subkey-bug, export-attributes". Link: https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration-Options.html It is true that many servers do not provide third party signatures anymore, but keyserver.ubuntu.com still does. The attack you are referring to is, I guess, the third party signature spamming in which the attacker would upload thousands of dummy cross signatures to cause a denial of service. But this attack does not apply to kernel/pgpkeys.git because we operate in a closed circle. This makes it easy to filter out any third party signatures which originate from someone which is not part of the kernel network of trust. This is easily controlled by passing the --keyserver-options no-self-sigs-only and --keyserver-options import-clean options. For example, if doing think from my old key: $ gpg --keyserver keyserver.ubuntu.com --keyserver-options no-self-sigs-only --keyserver-options import-clean --recv-key AB5FEB886DBB99C2 gpg: key AB5FEB886DBB99C2: "Vincent Mailhol <[email protected]>" 3 new signatures gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: next trustdb check due at 2026-11-06 gpg: Total number processed: 1 gpg: new signatures: 3 The signatures which do not match a valid identity are silently removed. --verbose is needed to get the message, e.g.: gpg: removing signature from key 735AA2F46136D956 on user ID "Vincent Mailhol <[email protected]>": key unavailable > > So let me ask: what type of data are actually synchronized? Is it only > > the sub-keys and the expiration dates? Or is there a way to upload the > > cross signatures somewhere to have them automatically synchronized in > > kernel/pgpkeys.git during the periodic updates? > > The keyservers can really only be relied for publishing things like: > > - new subkeys > - new uids > - updated expiry dates > > For third-party signature data it's best to send an export to this list. Please note that I have no issue with this approach. I just think that downloading the third party signatures as part of the periodic update is better because: 1. it is less work for you 2. I do not see how an attacker would be able to abuse this But I do not mind manually submitting changes. Whatever approach is used, I would like to suggest updating the documentation to clearly specify what has to be sent manually and what will be automatically synchronized. Yours sincerely, Vincent Mailhol