Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please document artifact signing keys #2099

Closed
iay opened this issue May 30, 2023 · 6 comments
Closed

Please document artifact signing keys #2099

iay opened this issue May 30, 2023 · 6 comments

Comments

@iay
Copy link

iay commented May 30, 2023

I'm doing due diligence for a project with a dependency on Guava. The latest release of Guava has a more modern version of j2objc-annotations as a dependency than before, and the new one is signed by a different PGP/GPG key than previously.

I'd like to establish that the new key 0xEE92349AD86DE446 is an official signing key for the project. On its face, it appears to represent @tomball so that's plausible, but I haven't been able to find anything substantiating that (it's only self-signed, so meaningless in isolation) or documenting the relationship between that specific key and the project.

Ideally, there would be something on the project's web site, or in a KEYS file in the repository, listing the keys we can expect published artifacts (e.g., in Maven Central) to be signed with. gpg --list-sigs format is fine.

(Updated for cut-and-paste error)

@tomball
Copy link
Collaborator

tomball commented May 30, 2023

Is the key used by the Guava jars acceptable? Since it's also a Google project, we can follow the steps that team took to create that key to create our own. They'd also know how to navigate the maze of internal security measures our company has in place to guard new keys.

We hadn't paid much attention to this issue since our jar has no executable code in it, just simple annotations. But I understand that security procedures need to be carefully adhered to, even for situations where there's no actual risk.

@iay
Copy link
Author

iay commented May 30, 2023

It looks like Guava are still signing artifacts with the same key they have been using for some years; it was grandfathered into our verification system in 2021 (as indeed was your old one B801E2F8EF035068EC1139CC29579F18FA8FD93B). So we'd probably make the same request of the Guava team the next time they change to a new key, unless they already document their setup somewhere.

You'll gather that I'm not really trying to get a handle on how you created the key that your artifacts are signed with; there's a limit to how much due diligence makes sense for one party to perform (and I have no idea what, if any, procedure the Guava team used; we have three keys grandfathered in for that project). All I really need here is something that convinces me that I should add the EB1B3DE71713C9EC2E87CC26EE92349AD86DE446 key to the list we regard as authoritative for the com.google.j2objc group. A list of fingerprints or encoded key blocks is usual and fairly simple to do. You might, of course, want to get deeper into process issues if you want to move to a new key again (a lot of people end up doing that if they move to new CI or release systems) but that's for another day.

@tomball
Copy link
Collaborator

tomball commented May 30, 2023

Sorry to be a bit dense this morning, but I'm not clear exactly what change you'd like done to our project site. Just a new section at the bottom of our README.md? Please draft what text you'd like, and I'll add it right away.

@iay
Copy link
Author

iay commented May 31, 2023

If you wanted to add something to the repository's README.md, it could look like this:

Artifact Signatures

This project publishes some artifacts through Maven Central with a groupId of com.google.j2objc.
These artifacts are currently signed with the following PGP/GPG key:

pub   rsa2048 2023-01-10 [SC] [expires: 2025-01-09]
      EB1B3DE71713C9EC2E87CC26EE92349AD86DE446
uid           [ unknown] Thomas Ball <tball@google.com>
sub   rsa2048 2023-01-10 [E] [expires: 2025-01-09]

Older artifacts are signed with the following PGP/GPG key:

pub   rsa2048 2015-09-25 [SC]
      B801E2F8EF035068EC1139CC29579F18FA8FD93B
uid           [ unknown] Tom Ball <tball724@gmail.com>
sub   rsa2048 2015-09-25 [E]

@yogurtearl
Copy link

We hadn't paid much attention to this issue since our jar has no executable code in it, just simple annotations.

That might be true of the legit version but may NOT be true of a version signed with the wrong key. :)

copybara-service bot pushed a commit that referenced this issue Jul 10, 2023
…ns published jar files.

PiperOrigin-RevId: 547016911
copybara-service bot pushed a commit that referenced this issue Jul 11, 2023
…ns published jar files.

PiperOrigin-RevId: 547016911
copybara-service bot pushed a commit that referenced this issue Jul 11, 2023
…ns published jar files.

PiperOrigin-RevId: 547024296
@tomball tomball closed this as completed Jul 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants