this post was submitted on 25 Jan 2024
33 points (88.4% liked)

Programming

17424 readers
45 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS
 

I'm curious to hear what the Lemmy programming community thinks of this!


  • The author argues against signing Git commits, stating that it adds unnecessary complexity to systems.
  • The author believes that signing commits perpetuates an engineering culture of blindly adopting complex tools.
  • The consequences of signing Git commits are likely to be subtle and not as dramatic as some may believe.

Archive link: https://archive.ph/vjDeK

you are viewing a single comment's thread
view the rest of the comments
[–] eager_eagle@lemmy.world 11 points 9 months ago (1 children)

I think the author balloons gpg signing into a problem and overlooks the impersonation aspect the signatures try to mitigate. Out of the cons listed:

Unknown, possibly unlimited future liability for the consequences of running code in a commit you signed

I don't see how proof of commit authorship would change the warranties a piece of software is supposed to deliver. Sure it'll make the untruthful claim of non-authorship harder (i.e. "I didn't write this" when they in fact did); on the flipside, the signature would also protect the author from an impersonation attempt of a malicious/deceiving piece of code. Either way, I wouldn't worry much about it.

Further implicitly cementing GitHub as a centralized trust authority in the open source world

This doesn't hold. Commit signature is a feature of git itself, even though the article chooses to focus on GitHub. And afaik github integration of signatures doesn't break code hosting elsewhere, GH merely allows you to register your GPG signature with them so they're able to validate the commits, but the author is still able to enroll the same GPG key to other hosts.

Introducing unknown reliability problems into infrastructure that relies on commit signatures

Not sure what they mean by this. If your infra is set up to require signature, they might have valid concerns about impersonation and/or operate in a regulated environment.

Temporary breach of your GitHub credentials now lead to potentially permanent consequences if someone can smuggle a new trusted key in there.

This is a temporary problem, not permanent. After the breach the genuine author can go to the settings and delete the compromised key. Commits signed with a deleted key fallback to an unverified status.

New kinds of ongoing process overhead as commit-signing keys become new permanent load-bearing infrastructure, like “what do I do with expired keys”, “how often should I rotate these”, and so on.

Same with SSH keys, security is often a trade-off with convenience.

[–] cadekat@pawb.social 5 points 9 months ago (1 children)

This doesn't hold. Commit signature is a feature of git itself, even though the article chooses to focus on GitHub. And afaik github integration of signatures doesn't break code hosting elsewhere, GH merely allows you to register your GPG signature with them so they're able to validate the commits, but the author is still able to enroll the same GPG key to other hosts.

Not only that, but GitHub rewrites signatures on rebase (and sometimes on fast forward merge) with their own private key. Using signatures on GitHub is basically pointless.

[–] eager_eagle@lemmy.world 2 points 9 months ago* (last edited 9 months ago)

true, that happens to me all the time

edit: I think they just rewrite the commit without signing it, not with their private key. Either way, the first signature is lost on rebasing.