-
Notifications
You must be signed in to change notification settings - Fork 142
Sign the code available in master #336
Comments
Hi Nicolas, I see that you are trying to find a reasonable approach between signing every commit and signing only tags/releases. Although I do agree that there are reasons to do this, it makes a simple process (merging new code) so complicated that it won't worth the effort. Not to mention that this would impact our current workflow, as it will prevent us from merging new code using the GitHub Web UI (something that I don't know if @andsens is used to, but I do). Of course I'd like to hear Anders opinions about it, but to me this looks like a ton of bureaucracy (signing and verifying signatures) that I would prefer to avoid. The example that you gave us is about a privacy tool that have way tighter requirements about what is commited to their repository than ours. Regards, P.s.: of course any of us can be tricked to merge malicious code - and a signed branch won't prevent that. I'm much more worried about my GitHub account security (I've enabled two-factor authentication as soon as I got write access to bootstrap-vz repository, for instance) here than anything else. |
I have been a bit lazy about getting my commits signed (sorry!). At the very least we should sign release tags, but it isn't very often that we tag anything, people usually just pull the latest master. I love the ease with which we can merge new PRs right through the GH interface and am very hesitant to give up that convenience. I could definitely start signing my own commits, this would at least allow for verification up to that point. Any subsequent PR merges would of course still go unsigned. There is of course stuff like this. I could make it more convenient to merge PRs through the CLI, then maybe it wont be as big of a hassle compared to pressing the "Merge" button in the WebUI. |
@andsens @myhro It's pretty easy to make Github PRs available as git refs:
Then, merging a given PR basically goes like this:
My main annoyances with this are:
|
@myhro I'm sorry I gave the impression this is complicated. |
Indeed it is! I'm in the process of getting myself a YUBI key, one way to try it out would definitely be git signing :-) |
@myhro suggested signing the release tags in #278. I would like to suggest going one step further, and keeping the code in
master
signed.There are several reasons to do so:
master
branch can still be confident (to a large extent) that they obtained code you published (however, Github could serve older (but signed!) code);master
branch signed gives you confidence, when tagging a release, that you are signing the code you authored (or reviewed).One way to do it, that I use and some other projects adopted goes as follows:
master
branch;master
, do a signed merge:git merge -S --no-ff feature-branch
;git pull [--ff-only] --verify-signatures
to ensure that no untrusted code can be sneaked in.Some important points:
master
) branches, as long as the tip of themaster
branch (on Github) is signed.if somebody who is trusted for reviewing/merging branches publishes a development branch with signed commits, the adversary can serve any of the signed commit instead of the development branch.
The text was updated successfully, but these errors were encountered: