[tbb-dev] A proposal for signing commits with gpg

Georg Koppen gk at torproject.org
Wed Apr 29 06:03:58 UTC 2020


Matthew Finkel:
> On Tue, Apr 28, 2020 at 04:42:47PM +0200, Nicolas Vigier wrote:
>> Hi,
>>
>> Attached is a proposal for signing commits with gpg.
> 
> Thanks!
> 
>>
>> I also added it to this branch (using number 104, although this number
>> can still change before merging):
>> https://gitweb.torproject.org/user/boklm/tor-browser-spec.git/commit/?h=bug_34046&id=66abcf2003c5131b24ea17d4eb164a42bff9c193
>>
>> Nicolas
>>
> [snip]
>> 1. Motivation
>>
>>   While building stable or alpha Tor Browser releases, we verify all
>>   inputs using one of the following methods:
>>    - verifying the checksum of downloaded files
>>    - verifying the gpg signature of downloaded files
>>    - verifying the gpg signature on git tags
>>    - using a know git commit hash
>>
>>   In nightly builds however, we need to use the master branch of some
>>   components, without checking that the commit is signed. An attacker
>>   who manages to take control of our git repository could potentially
>>   compromise our build machines in this way. In order to remove this
>>   possibility, we should sign and verify commits on all master branches
>>   used in the nightly builds.
> 
> Recently I was thinking about this, too. I've seen some people dislike
> signing git commits from a technical perspective, but that's because
> they usually think people misuse commit signing in place of signed tags.
> As I understand commit signing, your proposal uses commit signing in a
> useful way. This requires a combination of compromising someone's PGP
> key and either gaining control of the git server or obtaining someone's
> ssh key, at least.
> 
>>
>> 2. Proposal
> [snip]
>> 2.2 Git repositories which should have signed commits
>>
>>   The master of commit tor-browser-build.git should be signed by one of
>>   the members of the Tor Browser team. Additionally, all components
>>   included in Tor Browser, where the master branch is used in our
>>   nightly build, should have their master commit signed by one of the
>>   maintainer of those repositories.
>>
>>   The current list of repositories where we use the master branch in
>>   nightly builds is:
>>
>>     https://git.torproject.org/pluggable-transports/goptlib.git
>>     https://git.torproject.org/pluggable-transports/obfs4.git
>>     https://git.torproject.org/tor-launcher.git
>>     https://git.torproject.org/tor-browser.git
>>     https://git.torproject.org/tor.git
> 
> As an additional step, we can shorten this list. I know there are
> benefits to testing the master branch, but maybe that's not worth the
> extra complexity for all of these projects. In particular, obfs4 and
> goptlib are not changing frequently.
> 
> Imposing the requirement that all new commits in tor.git are signed may
> be difficult. That is a conversation we should have on tor-dev at .
> 
> For tor-browser and tor-launcher, I'm in favor of moving toward this
> requirement. I'll go further and suggest we follow the same process for
> torbutton and tor-browser-build, but that's outside the scope of this

tor-browser-build is included in the proposal fwiw and is important.

Georg

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.torproject.org/pipermail/tbb-dev/attachments/20200429/6f786c7b/attachment-0001.sig>


More information about the tbb-dev mailing list