LWN: Comments on "OpenPGP certificate flooding" https://lwn.net/Articles/792366/ This is a special feed containing comments posted to the individual LWN article titled "OpenPGP certificate flooding". en-us Sat, 06 Sep 2025 04:58:08 +0000 Sat, 06 Sep 2025 04:58:08 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net I'm having difficulty understanding https://lwn.net/Articles/793292/ https://lwn.net/Articles/793292/ riking <div class="FormattedComment"> <font class="QuotedText">&gt; not much we can do about it</font><br> <p> Have you considered running a fuzzer and fixing the bugs the fuzzer finds? That's how the mentioned nullptr bug was found.<br> </div> Wed, 10 Jul 2019 02:20:12 +0000 OpenPGP certificate flooding https://lwn.net/Articles/793102/ https://lwn.net/Articles/793102/ ttelford Now it makes sense to me.<br/> <br/> My naive thought is that it would be along the lines of:<br/> 1. Alice uploads her public key<br/> 2. Bob signs Alice's public key<br/> 3. For Bob's signature to be valid, Alice has to sign (or have already signed) Bob's key in her local keychain<br/> 4. Alice uploads the new (signed) public key, and Bob gets a copy of his public key signed by Alice.<br/> 5. Bob receives his public key (signed by Alice), and can (in turn) upload his public key (which is signed by Alice).<br/> <br/> Though I'm sure there's a better idea than that... Mon, 08 Jul 2019 16:26:55 +0000 I'm having difficulty understanding https://lwn.net/Articles/792862/ https://lwn.net/Articles/792862/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; Please be so kind and file a bug report or tell us here if you happen to know a case where an import or key access leads to a NULL-ptr deref or any other way to "brick your keyring".</font><br> <p> If you care about security maybe you should start looking at alternatives to a 50 years old language with built-in memory corruption features. It doesn't even have to be OCaml.<br> </div> Thu, 04 Jul 2019 22:31:53 +0000 I'm having difficulty understanding https://lwn.net/Articles/792790/ https://lwn.net/Articles/792790/ madhatter While we're dogpiling on how broken the web of trust is, note that Werner Koch is on record <a href="https://lwn.net/Articles/735840/">in these pages</a> saying the same thing, nearly two years ago: <p> <cite> The problem is systemic: the web of trust, he feels, is inherently broken. It is only explicable to geeks, and not to all of them, it publishes a global social graph, because signatures on keys imply physical meetings on known dates, and it doesn't scale. His preference for general public key handling is Trust On First Use (TOFU). </cite></p> Disclaimer: I wrote the linked article. Thu, 04 Jul 2019 08:26:31 +0000 OpenPGP certificate flooding https://lwn.net/Articles/792773/ https://lwn.net/Articles/792773/ dkg I agree with pabs here, this is the only sensible way to permit distribution of third-party certifications, but the devil is in the details. <p> Several months ago, I <a href="https://tools.ietf.org/html/draft-dkg-openpgp-abuse-resistant-keystore-03#section-10">outlined a way to do that</a> in an attempt to spur public discussion. It's not set in stone, and indeed, <a href="https://gitlab.com/dkg/draft-openpgp-abuse-resistant-keystore/merge_requests/13">there is a proposal to amend it</a>. It will take a bit more work to get the specification right, but the real work will be in the tooling to make it possible for normal humans to do exactly the right multi-party, serialized dance necessary to make something that an abuse-resistant keystore can feel confident in redistributing. <p> This work is not just crypto or RFC 4880 packet parsing/generating work -- that's the easy bit. The hard stuff is thinking about user experience. What is the smoothest way to present these options to the user so that they know what they're doing, without having to know all the gory details. <p> I don't have the bandwidth to develop that tooling myself right now. But if anyone wants to work on building it out and thinking about the user experience for that process, i'd be happy to act as a sounding board/tester/bug reporter. Thu, 04 Jul 2019 01:35:04 +0000 OpenPGP certificate flooding https://lwn.net/Articles/792765/ https://lwn.net/Articles/792765/ pabs <div class="FormattedComment"> Right, it would be pretty pointless for anyone else than the holder of the key being signed to be able to upload signatures.<br> <p> For context; the proper way to get signatures on your OpenPGP key is that signers use caff or similar to send email containing signatures to the UIDs on your key to verify that the key holder also owns the email addresses. On receiving the emails the key holder imports the signatures and forwards their key to the keyserver network.<br> <p> So my proposal fits into the proper workflow for obtaining and distributing signatures (that most communities use) and as a bonus eliminates both spam signatures and improperly distributed signatures that haven't verified UID control or haven't even verified fingerprints. Of course the signer and key holder could workaround this using other more manual transports, but hopefully those would be deprecated in all the tools surrounding signing.<br> </div> Thu, 04 Jul 2019 00:18:58 +0000 OpenPGP certificate flooding https://lwn.net/Articles/792744/ https://lwn.net/Articles/792744/ vadim <div class="FormattedComment"> I think the idea is proving you own the private key to the key being signed. So for instance, only the owner of the Tor key would be able to send updated versions of it to keyservers.<br> <p> </div> Wed, 03 Jul 2019 20:20:51 +0000 OpenPGP certificate flooding https://lwn.net/Articles/792742/ https://lwn.net/Articles/792742/ ttelford What does owning the private key to the new signature prove?<br/><br/>Yarrow, Fortuna, or Haveged produce arbitrary amounts of "entropy" in negligible amounts of time; it's trivial to create a new bogus key pair.<br/><br/>You just generate a bogus key, sign/spam, upload, toss the bogus key, repeat.<br/><br/>We wind up with the same spam problem with extra steps -- which our machine slaves won't even blink an eye at. Wed, 03 Jul 2019 20:10:02 +0000 I'm having difficulty understanding https://lwn.net/Articles/792731/ https://lwn.net/Articles/792731/ dd9jn <div class="FormattedComment"> Derefing a NULL-ptr happens far more often than derefing an invalid pointer. This is the reason why practically all platforms do not map the page with address 0x0. For example<br> <p> if (!a) <br> die ("something is wrong with %s\n", a-&gt;name);<br> <p> is an obvious bug in the diagnostic but no real harm is done. Needs to be fixed of course. <br> <p> </div> Wed, 03 Jul 2019 18:32:19 +0000 I'm having difficulty understanding https://lwn.net/Articles/792726/ https://lwn.net/Articles/792726/ NYKevin <div class="FormattedComment"> If it is dereferencing NULL pointers, might it also be dereferencing non-NULL but invalid pointers? If so, there's probably an RCE vuln in there somewhere... I wonder how long it would take a determined nation-state attacker to backdoor everyone's boxes with booby-trapped keys?<br> </div> Wed, 03 Jul 2019 18:01:03 +0000 OpenPGP certificate flooding https://lwn.net/Articles/792721/ https://lwn.net/Articles/792721/ jcm <div class="FormattedComment"> Red Hat KB on the topic:<br> <p> <a href="https://access.redhat.com/articles/4264021">https://access.redhat.com/articles/4264021</a><br> </div> Wed, 03 Jul 2019 17:04:59 +0000 Trust https://lwn.net/Articles/792681/ https://lwn.net/Articles/792681/ vadim <div class="FormattedComment"> Ah, not important. Just a picture of a lot of people.<br> </div> Wed, 03 Jul 2019 14:03:31 +0000 Trust https://lwn.net/Articles/792679/ https://lwn.net/Articles/792679/ Kamiccolo <div class="FormattedComment"> Your reddit link:<br> Error 403 Forbidden<br> <p> </div> Wed, 03 Jul 2019 13:10:56 +0000 OpenPGP certificate flooding https://lwn.net/Articles/792674/ https://lwn.net/Articles/792674/ pabs <div class="FormattedComment"> For supporting the WoT while blocking spam, could the keyservers not simply require that additions of new signatures to a key pass prove that they own the corresponding private key (or even a subkey)? One bonus of this method would be that bogus signatures from people you have never exchanged signatures with but naively signed your key anyway get blocked. I can only think of one downside, it might be slightly more annoying for folks who have offline master keys. Seems worth the cost to me.<br> </div> Wed, 03 Jul 2019 11:27:05 +0000 Trust https://lwn.net/Articles/792665/ https://lwn.net/Articles/792665/ vadim <div class="FormattedComment"> Good point, that wasn't correct.<br> <p> <p> The problem there though is that there's no way to avoid trust in the situation. So let's get back to the Tor browser.<br> <p> Option A: Personally reviewing the entire source code. Not really practical.<br> <p> Option B: Personally knowing the developers, and having a personal deep familiarity with their work. Available to a few people at most.<br> <p> Option C: Trusting some random organization to certify the signing key, because your browser trusts them, which you trust mostly because you hope you didn't obtain a compromised version.<br> <p> Option D: Trusting the WoT to certify the signing key.<br> <p> <p> Signal's model isn't going to work here. I've been at a talk by Roger Dingledine at FOSDEM, which filled most of Janson (the big auditorium). There's no way the poor guy is going to sit there signing the keys of all those people: <a href="https://external-preview.redd.it/Tcci3W9pcAD5FuRyCiMhl9vPSq2WADgtfn7pR_8dg3k.jpg">https://external-preview.redd.it/Tcci3W9pcAD5FuRyCiMhl9vP...</a><br> <p> And if he did, he'd still only reach a minuscule amount of people. You absolutely need an intermediary.<br> <p> As far as I know it comes down to either CAs or the WoT in the end. CAs are very vulnerable to government interference. And the WoT only works so long everyone is being very careful, which many people aren't.<br> <p> I think in the end you have to compromise and to make some assumptions. Either hope that efforts like certificate transparency are enough to patch up the deficiencies of CAs, or hope your usage of the WoT doesn't have any obvious issues with it.<br> </div> Wed, 03 Jul 2019 11:04:28 +0000 OpenPGP certificate flooding https://lwn.net/Articles/792662/ https://lwn.net/Articles/792662/ dd9jn <div class="FormattedComment"> The more relevant bug report is <a href="https://dev.gnupg.org/T4591">https://dev.gnupg.org/T4591</a> . <br> <p> Checking a 100k of signatures is obviously a performance problem and we can't do much about it. Unless we ignore key signatures and the WoT. I am all in favor of this but there is still a large crowd who favors the WoT and the (formerly) easy access via keyservers. <br> </div> Wed, 03 Jul 2019 08:40:17 +0000 I'm having difficulty understanding https://lwn.net/Articles/792661/ https://lwn.net/Articles/792661/ dd9jn <div class="FormattedComment"> Please be so kind and file a bug report or tell us here if you happen to know a case where an import or key access leads to a NULL-ptr deref or any other way to "brick your keyring". To mitigate DoS we have several limits implemented, like max. size of a user ID or an overall keyblock size of 5MiB (which used to allow the import of the largest actively used keyblock at that time). <br> <p> DoS is a common problem with all PKIs, be it OpenPGP (we have been lucky in the past) or X.509 (for example try to use the cacert CRL). There is unfortunately not much we can do about it unless you want to turn OpenPGP into a centralized system with gatekeeper who cares about anti-spam measures.<br> </div> Wed, 03 Jul 2019 08:32:43 +0000 Trust https://lwn.net/Articles/792660/ https://lwn.net/Articles/792660/ tialaramex <div class="FormattedComment"> That step with "trust" you got wrong, and I'm bothering to point this out because it's illustrative of why the Web of Trust is flawed regardless of whether you're using carefully engineered software or some scripts thrown together in the 1990s by enthusiasts.<br> <p> "How much do you trust guy #53 of 120 you met at FOSDEM? Do you remember how well you checked his ID?"<br> <p> Nope. The system is asking how you much you _trust_ them, not whether you're sure they are who they say they are.<br> <p> I am 100% certain my mother is my mother, but I wouldn't trust her as far as I can throw her. And this is where the WoT breaks down. Your trust metric must reflect your confidence that these people will do their part correctly in the WoT, but even conscientious users often don't understand how to do their part correctly, so realistically almost everybody's "trust" indication for almost everybody should be zero. At which point it's not a "web" it's just a bunch of unconnected points.<br> <p> This is why things like Signal don't bother trying to invent a technologically complex way to "verify" other participants. Technology is used to make the only provided way _easy_ but not to try to conjure trust where it doesn't really exist. You make your own decisions on how to label other participants in a direct conversation and whether to consider you've "verified" they are who you thought they are. It's exactly as happy with you deciding you've verified "Deep Throat (gov insider?)" and not "Sally Anne Jenkins of Ohio" as vice versa. It doesn't mean anything to me that Sally claims to have verified Deep Throat, or that Deep Throat claims to have verified Sally.<br> </div> Wed, 03 Jul 2019 08:17:24 +0000 I'm having difficulty understanding https://lwn.net/Articles/792658/ https://lwn.net/Articles/792658/ mjg59 <div class="FormattedComment"> Either:<br> <p> 1) PGP isn't a meaningful problem in terms of governments' abilities to monitor what dissidents are doing, or:<br> 2) Dissidents aren't being put in danger by the keyservers being poisoned<br> <p> (Or, of course, this attack /is/ being carried out by a government)<br> </div> Wed, 03 Jul 2019 03:34:39 +0000 I'm having difficulty understanding https://lwn.net/Articles/792656/ https://lwn.net/Articles/792656/ KaiRo <div class="FormattedComment"> 1. The state actors have not been nearly as frustrated as we thought and either found other ways to get their info or are less interested than we thought in targets that use PGP/GPG.<br> 2. State actors are less interested in bringing down the system than decrypting data of specific targets - which won't be helped by DoS attacks but will be helped by storing the data and waiting for quantum computers to break public/private key encryption itself.<br> <p> Just a guess.<br> </div> Wed, 03 Jul 2019 00:06:23 +0000 I'm having difficulty understanding https://lwn.net/Articles/792655/ https://lwn.net/Articles/792655/ thestinger <div class="FormattedComment"> <font class="QuotedText">&gt; Glaring holes existed in the GnuPG ecosystem, well known for the past 10 years, such that the slightest poking can take down individual account setups, or even the entire key server network.</font><br> <p> It should be noted that these trivial denial of service vectors also exist when importing keys manually. GPG exposes a bunch of attack surface when importing a key, and it's not at all hardened. There are assorted trivial ways to permanently brick the keyring including null pointer dereferences. Of course, denial of service isn't the worst that could happen, but that's less trivial to do than leaving out a field and causing a null pointer dereference. The keyservers are aggravating this issue, but you do need to be wary about importing any untrusted public key with GPG. That's a major issue. It shouldn't just be for communicating with people you strongly trust, since then you can't use encryption as a default.<br> <p> <font class="QuotedText">&gt; Can anyone help me see how both of these things can be true? One guess I'm considering is that actually the SKS key servers and the web-of-trust attestation model are actually very rarely used. Therefore it is possible that dissidents under oppressive regimes have, in fact, been communicating successfully using GnuPG keys they exchanged via other means, and never contacting key servers?</font><br> <p> I think you're wrong to assume that there's any substantial usage of GPG by dissidents. Modern end-to-end encrypted messaging apps have forward secrecy (crucial) and are far more usable.<br> <p> The GPG keyring and web of trust are a failed approach, rarely if ever what people actually want and yet it essentially forces you into using it. It requires you to import keys into a keyring. It's not directly usable for even simple cases like verifying the signature of a file with a specific key. It can do it, but you need to create a dedicated keyring unless you're going to check the output and make sure the right key was used. This extends to the other use cases for it. It's a highly problematic design with poor usability.<br> <p> The approach that's actually used in practice is verifying keys yourself, not relying on other people to do it, and without the complex keyring / web of trust getting in the way.<br> </div> Tue, 02 Jul 2019 23:58:11 +0000 I'm having difficulty understanding https://lwn.net/Articles/792641/ https://lwn.net/Articles/792641/ vadim <div class="FormattedComment"> Yup. The WoT model is nigh unusable.<br> <p> First, let's say you're a developer for CoolDistro. At some point you meet ExperiencedDev, who after a round of introductions signs your key. You sign theirs. You get the keyring for CoolDistro, and since ExperiencedDev signed pretty much everyone's key, you're pretty much set. No keyservers in sight.<br> <p> But let's say you're a random guy, you went to FOSDEM and signed more than a hundred keys. You're well connected now. And you want to verify the key on the Tor browser. What do you do? <br> <p> 1. You get the signature, you try to verify it, and gpg tells you: "nope, this isn't trusted!". You don't have the signing key. Damn.<br> 2. Okay, there's gpg --recv-keys, right? Nope, there's no default keyserver.<br> 3. You google for, and configure gpg to use a damn keyserver. You get the key. Still no dice. The key isn't trusted, because you didn't sign that one.<br> 4. You figure that somebody you met, at some point, must have signed it. Time to make sure you have every key you signed, and that you refreshed them from the keyserver. Now it should work. But it still doesn't.<br> 6a. GPG's trust model works well for Alice -&gt; Bob -&gt; Carol chains. But it can actually extend further. What if you want to check an Alice -&gt; Bob -&gt; Carol -&gt; Dave chain? Well, you're stuck. You might know who you signed, but if you don't know Carol, how do you find out you need her key? Here you can take on the desperate resort of recursively downloading the key of everyone you signed, plus every key *they* signed, hoping it might help. Happy scripting! And dealing with a key database of several thousand people, the vast majority of which you've never met.<br> 6b. You might actually know about <a href="https://pgp.cs.uu.nl/">https://pgp.cs.uu.nl/</a>, which some random guy runs and which might vanish at any moment, and which doesn't cover every key in existence. But it helps a lot.<br> 7. What? It still doesn't work!?. GPG isn't happy with just signatures, you need to tell it how much you trust that key. Do gpg --update-trustdb and fill in the missing info. Things get fuzzy here. How much do you trust guy #53 of 120 you met at FOSDEM? Do you remember how well you checked his ID? Uhh... You get that done, and finally, that WORKS.<br> 8. Time to celebrate with a drink of your choice.<br> <p> Why, nice and easy, isn't it? It'll only take meeting a lot of people face to face, laboriously signing a hundred keys, then spending a day or two figuring out the above, and you can finally make some use of this web of trust. If you're technically minded enough to understand all that stuff, and have the patience for it.<br> <p> I'd be willing to bet that the number of people who've done the above isn't very large. I've done it, and it actually worked, but boy is it annoying. You need to be a pretty special kind of person to put up with that.<br> <p> <p> PS: While writing this comment I tried to get the Tor Browser's current key to make sure I wasn't missing anything. It's got "100304 new signatures" on it. Wheee.<br> <p> <p> </div> Tue, 02 Jul 2019 21:17:55 +0000 I'm having difficulty understanding https://lwn.net/Articles/792638/ https://lwn.net/Articles/792638/ AngryChris <div class="FormattedComment"> 1. Governments complain that they can't read the encrypted communications.<br> 2. The problem described in the article does not help with reading the communications, it's only in griefing people.<br> <p> That's how both statements are true at the same time.<br> <p> 1. Encrypted communications still can't be intercepted.<br> 2. People can be griefed/trolled/etc.<br> </div> Tue, 02 Jul 2019 20:34:51 +0000 I'm having difficulty understanding https://lwn.net/Articles/792634/ https://lwn.net/Articles/792634/ ms-tg <div class="FormattedComment"> I'm having difficulty understanding how both of these things can be true at the same time:<br> <p> 1. Multiple oppressive state actors have been frustrated over the past 10 years by dissidents using GnuPG to encrypt communications<br> <p> 2. Glaring holes existed in the GnuPG ecosystem, well known for the past 10 years, such that the slightest poking can take down individual account setups, or even the entire key server network.<br> <p> Can anyone help me see how both of these things can be true? One guess I'm considering is that actually the SKS key servers and the web-of-trust attestation model are actually very rarely used. Therefore it is possible that dissidents under oppressive regimes have, in fact, been communicating successfully using GnuPG keys they exchanged via other means, and never contacting key servers?<br> </div> Tue, 02 Jul 2019 20:19:14 +0000