Most active commenters

    ←back to thread

    61 points harporoeder | 18 comments | | HN request time: 0.001s | source | bottom
    1. politelemon ◴[] No.41874187[source]
    This feels like perfect being the enemy of good enough. There are examples where the system falls over but that doesn't mean that it completely negates the benefits.

    It is very easy to get blinkered into thinking that the specific problems they're citing absolutely need to be solved, and quite possibly an element of trying to use that as an excuse to reduce some maintenance overhead without understanding its benefits.

    replies(2): >>41874198 #>>41874289 #
    2. creatonez ◴[] No.41874198[source]
    Its benefits are very much completely negated in real-world use. See https://blog.yossarian.net/2023/05/21/PGP-signatures-on-PyPI... - the data suggests that nobody is verifying these PGP signatures at all.
    replies(2): >>41874468 #>>41874473 #
    3. jacques_chester ◴[] No.41874289[source]
    Maintaining this capability isn't free, it is of dubious benefit and there are much better alternatives.

    On a cost benefit analysis this is a slam dunk.

    replies(1): >>41874384 #
    4. nightfly ◴[] No.41874384[source]
    What are these "much better alternatives"?
    replies(1): >>41874419 #
    5. arccy ◴[] No.41874419{3}[source]
    https://www.sigstore.dev/

    The emerging standard for verifying artifacts, e.g. in container image signing, npm, maven, etc

    https://blog.sigstore.dev/npm-public-beta/ https://www.sonatype.com/blog/maven-central-and-sigstore

    replies(1): >>41875806 #
    6. dig1 ◴[] No.41874468[source]
    I stopped reading after this: "PGP is an insecure [1] and outdated [2] ecosystem that hasn't reflected cryptographic best practices in decades [3]."

    The first link [1] suggests avoiding encrypted email due to potential plaintext CC issues and instead recommends Signal or (check this) WhatsApp. However, with encrypted email, I have (or can have) full control over the keys and infrastructure, a level of security that Signal or WhatsApp can't match.

    The second link [2] is Moxie's rant, which I don't entirely agree with. Yes, GPG has a learning curve. But instead of teaching people how to use it, we're handed dumbed-down products like Signal (I've been using it since its early days as a simple sms encryption app, and I can tell you, it's gone downhill), which has a brilliant solution: it forces you to remember (better to say to write down) a huge random hex monstrosity just to decrypt a database backup later. And no, you can't change it.

    Despite the ongoing criticisms of GPG, no suitable alternative has been put forward and the likes of Signal, Tarsnap, and others [1] simply don't cut it. Many other projects running for years (with relatively good security track records, like kernel, debian, or cpan) have no problem with GPG. This is 5c.

    [1] https://latacora.micro.blog/2019/07/16/the-pgp-problem.html

    [2] https://moxie.org/2015/02/24/gpg-and-me.html

    [3] https://blog.cryptographyengineering.com/2014/08/13/whats-ma...

    replies(3): >>41874529 #>>41874549 #>>41874604 #
    7. Diti ◴[] No.41874473[source]
    I believe the article you linked to doesn’t seem to say anything about “nobody verifying PGP signatures”. We would need PyPI to publish their Datadog & Google Analytics data, but I’d say the set of users who actually verify OpenPGP signatures intersects with the set of users faking/scrambling telemetry.
    replies(1): >>41874512 #
    8. woodruffw ◴[] No.41874512{3}[source]
    I wrote the blog post in question. The claim that "nobody is verifying PGP signatures (from PyPI)" comes from the fact that around 1/3rd had no discoverable public keys on what remains of the keyserver network.

    Of the 2/3rd that did have discoverable keys, ~50% had no valid binding signature at the time of my audit, meaning that obtaining a living public key has worse-than-coin-toss odds for recent (>2020) PGP signatures on PyPI.

    Combined, these datapoints (and a lack of public noise about signatures failing to verify) strongly suggest that nobody was attempting to verify PGP signatures from PyPI at any meaningful scale. This was more or less confirmed by the near-zero amount of feedback PyPI got once it disabled PGP uploads.

    replies(1): >>41875814 #
    9. wkat4242 ◴[] No.41874529{3}[source]
    Yeah I still use pgp a lot. Especially because of hardware backed tokens (on yubikey and openpgp cards) which I use a lot for file encryption. The good thing is that there's toolchains for all desktop OSes and mobile (Android, with openkeychain).

    I'm sure there's better options but they're not as ubiquitous. I use it for file encryption, password manager (pass) and SSH login and everything works on all my stuff, with hardware tokens. Even on my tablet where Samsung cheaped out by not including NFC I can use the USB port.

    Replacements like fido2 and age fall short by not supporting all the usecases (file encryption for fido2, hardware tokens for age) or not having a complete toolchain on all platforms.

    replies(1): >>41874617 #
    10. ◴[] No.41874549{3}[source]
    11. nick__m ◴[] No.41874617{4}[source]
    I use pcks11 on my yubikeys, would I gain something by using the PGP functionality instead?
    replies(1): >>41874983 #
    12. wkat4242 ◴[] No.41874983{5}[source]
    Easier tooling. At least on Linux. PKCS11 requires a dynamically linked library (.so) which you pass to programs using it (like SSH) which is a bit annoying and because it's a binary linking it's not an API you can easily debug. It tends to just crash especially with version mismatches. The GPG agent API is easier for this. It works over a socket and can even be forwarded over SSH connections.

    Usually you end up using OpenSC/OpenCT for that. Also the tooling to manage the virtual smartcards is usually not as easy. I haven't used PIV for this (which is probably what you use on the yubikey to get PKCS11) but it was much harder to get going than simply using GPG Agent/scdaemon/libpcscd and the command "gpg card-edit" to configure the card itself.

    It's still not quite easy but I found it easier than PKCS11. I used that before with javacards and SmartHSM cards. The good thing about the PIV functionality is that it integrates really well with Windows active directory, which PGP of course doesn't. So if you're on Windows, PIV (with PKCS11) is probably the way to go (or Fido2 but it's more Windows Hello for Business rather than AD functionality then, it depends whether you're a legacy or modern shop).

    The big benefit of yubikeys over smartcards is that you can use the touch functionality to approve every use of the yubikey, whereas an unlocked smartcard will approve every action without a physical button press (of course because it doesn't have such a button).

    replies(1): >>41875645 #
    13. aborsy ◴[] No.41875645{6}[source]
    I second this!
    14. binary132 ◴[] No.41875806{4}[source]
    Emerging standard = not yet the standard
    replies(1): >>41876472 #
    15. opello ◴[] No.41875814{4}[source]
    This all makes sense.

    PEP 740 mentions:

    > In their previously supported form on PyPI, PGP signatures satisfied considerations (1) and (3) above but not (2) (owing to the need for external keyservers and key distribution) or (4) (due to PGP signatures typically being constructed over just an input file, without any associated signed metadata).

    It seems to me that the infrastructure investment in sigstore.dev vs. PGP seems arbitrary. For example, on the PGP side, PyPI keyserver and tooling to validate uploads as to address (2) above. And (4) being handled similar to PEP 740 with say signatures for provenance objects. Maybe the sigstore is "just way better" but it doesn't exactly seem so cut-and-dried of a technical argument from the things discussed in these commends and the linked material.

    It's perfectly responsible to make a choice. It seems unclear just what the scope of work difference would be despite there being a somewhat implicit suggestion across the discussions and links in the comments that it was great. Maybe that's an unreasonable level of detail to expect? But with what seems to come across as "dogging on PGP" it seems what I've found disappointing with my casual brush with this particular instance of PGP coming up in the news.

    replies(1): >>41875869 #
    16. woodruffw ◴[] No.41875869{5}[source]
    (2) is addressed by Sigstore having its own infrastructure and a full-time rotation staff. PyPI doesn't need to run or operationalize anything, which is a significant relief compared to the prospect of having to operationalize a PGP keyserver with volunteer staffing.

    (I'm intentionally glossing over details here, like the fact that PyPI doesn't need to perform any online operations to validate Sigstore's signatures. The bottom line is that everything about it is operationally simpler and more modern than could be shaped out of the primitives PGP offers.)

    (4) could be done with PGP, but would go against the long-standing pattern of "sign the file" that most PGP tooling is ossified around. It also doesn't change the fact that PGP's signing defaults aren't great, that there's a huge tail of junk signing keys out there, and that to address those problems PyPI would need to be in the business of parsing PGP packets during package upload. That's just not a good use of anybody's time.

    replies(1): >>41876039 #
    17. opello ◴[] No.41876039{6}[source]
    > having its own infrastructure

    This seems like a different brand of the keyserver network?

    > PyPI doesn't need to run or operationalize anything

    So it's not a new operational dependency because it's index metadata? That seems more like an implementation detail (aside from the imagined PGP keyserver dependency) that seems accommodatable given either system.

    > like the fact that PyPI doesn't need to perform any online operations to validate Sigstore's signatures

    I may be missing something subtle (or glaring) but "online operations" would be interactions with some other service or a non-PSF service? Or simply a service not-wholly-pypi? Regardless, the index seems like it must be a "verifier" for design consideration (2) from PEP 740 to hold, which would mean that the index must perform the verification step on the uploaded data--which seems inconsequentially different between an imagined PGP system (other than it would have to access the imagined PyPI keyserver) and sigstore/in-toto.

    > ... PyPI would need to be in the business of parsing PGP packets during package upload.

    But the sigstore analog is the JSON array of in-toto attestation statement objects.

    18. jacques_chester ◴[] No.41876472{5}[source]
    Nobody said it was. The point is that it's better.