Githubs web-flow OpenPGP signatures and key are in incorrect format #27607
-
I noticed that the OpenPGP/GPG/GnuPG signatures that Github makes on commits and tags and the associated key are in an incorrect format. This is currently being discussed in the IETF OpenPGP WG: https://gitlab.com/openpgp-wg/rfc4880bis/-/merge_requests/209 Can anyone tell us if the OpenPGP implementation that Github is using is used anywhere else? Is the source available anywhere? Some information copied here for context:
Below is the dump of the signature. Also see the analysis of the key in https://gitlab.com/openpgp-wg/rfc4880bis/-/merge_requests/209#note_1044594616 .
|
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 12 replies
-
This issue affects not only signatures made over commits, but the self-signatures on the key. It is also not the only issue - importing this key into go-crypto fails because the digest prefix is set incorrectly on the self-sigs (sequoia and gnupg do not check this but other implementations do). It is reasonable to assume that digest prefixes are set incorrectly on all other sigs. |
Beta Was this translation helpful? Give feedback.
-
In the OpenPGP Working Group meeting at IETF 114 today, this consumed a bit of time and discussion. This divergence from standards is likely to cause problems for the OpenPGP community (i'm a co-chair of the OpenPGP WG). It would be great if Github could:
--- web-flow.gpg 2022-07-29 13:43:15.566983574 -0400
+++ github-webflow-fixed-certificate.pgp.txt 2022-07-29 13:19:37.711800616 -0400
@@ -7,11 +7,11 @@
buXCDscJcLJRKZVc62gOZXXtPfoHqvUPp3nuLA4YjH9bphbrMWMf810Wxz9JTd3v
yWgGqNY0zbBqeZoGv+TuExlRHT8ASGFS9SVDABEBAAHNNUdpdEh1YiAod2ViLWZs
b3cgY29tbWl0IHNpZ25pbmcpIDxub3JlcGx5QGdpdGh1Yi5jb20+wsBiBBMBCAAW
-BQJZlGhBCRBK7hj4Ov3rIwIbAwIZAQAAmQEIACATWFmi2oxlBh3wAsySNCNV4IPf
+BQJZlGhBCRBK7hj4Ov3rIwIbAwIZAQAAmQEH/iATWFmi2oxlBh3wAsySNCNV4IPf
DDMeh6j80WT7cgoX7V7xqJOxrfrqPEthQ3hgHIm7b5MPQlUr2q+UPL22t/I+ESF6
9b0QWLFSMJbMSk+BXkvSjH9q8jAO0986/pShPV5DU2sMxnx4LfLfHNhTzjXKokws
+8ptJ8uhMNIDXfXuzkZHIxoXk3rNcjDN5c5X+sK8UBRH092BIJWCOfaQt7v7wig5
4Ra28pM9GbHKXVNxmdLpCFyzvyMuCmINYYADsC848QQFFwnd4EQnupo6QvhEVx1O
j7wDwvuH5dCrLuLwtwXaQh0onG4583p0LGms2Mf5F+Ick6o/4peOlBoZz48=
-=HXDP
+=HsBQ
-----END PGP PUBLIC KEY BLOCK-----
If those two steps can be done, that would solve everything going forward! Subsequently, you might want to retrospectively fix signatures that have already been issued. I think that can be done without breaking anything, but i'm not entirely sure -- I'd be happy to talk with anyone on your team who is looking into that to try to help figure out the details. |
Beta Was this translation helpful? Give feedback.
-
It would be great to get a response from someone at github about this! |
Beta Was this translation helpful? Give feedback.
-
Received an update in the ticket:
I answered: Thank you! x/crypto/openpgp is marked deprecated ( golang/go#44226 ) but you can use https://github.com/ProtonMail/go-crypto as a replacement, which AFAIK does not have this issue. Reply:
Notes when I quickly looked at this, I found this commit: sylabs/golang-x-crypto@374053e#diff-47e53358306da9dcb5ca7dd110d31067d11f231fc3baed4f51e4026e26b521bfL506 Context for author: https://latacora.micro.blog/2019/07/16/the-pgp-problem.html golang/go#44226 https://nitter.net/FiloSottile/status/1555677349621932032#m |
Beta Was this translation helpful? Give feedback.
-
Hi there! I'm looking into this issue at the moment, though depending on our discussion I can't concretely promise that I'll be able to resolve the issue. I'll also add the caveat that I'm not an OpenPGP expert, I'm learning as I go. I grabbed the signature from containers/podman@b0d7a3a, a commit from earlier today. Our commit signing key was rotated in January, and there have been several other security updates to our internal services in the past few months that may have fixed this issue. Is this still a problem? If it is, how would you recommend I test it (since |
Beta Was this translation helpful? Give feedback.
Received an update in the ticket: