Bob Hepple wrote:
> If we _do_ support "signed git tags" how do we code for it in the spec
> file?

As the builders lack Internet access, they can't pull directly from the
upstream Git repository. To verify a signed Git tag during the build,
it would be necessary to package up the whole Git repository (or enough
of it to include the source code, the tag and the signature) and upload
that instead of the source tarball. Then I suppose you would unpack the
repository in %prep and run some Git command to verify the signature,
probably "git verify-tag" which is described as "check the GPG signature
of tags".

gpgverify uses the command gpgv instead of gpg. It's a simplified
verification method that fits this usecase better. If Git calls gpg and
expects to find a keyring in the user's home directory, then you'd have
to write the spec to prepare a suitable keyring, ensure that GnuPG will
find that and no other keyring, and tell it to trust the correct key.
It's far from trivial to get that right and secure.

I'm not aware of any tooling for this other than gpgverify, so I
suppose the answer is that Fedora does not support signed Git tags.

It should also be noted that with gpgverify we verify the signature
before we unpack the tarball. If a malicious tarball tries to attack
some vulnerability in Tar or Gzip, then either the verification will
fail and stop the build before the attack gets a chance to work, or else
the tarball was already malicious when the upstream developer signed it.
With Git I don't know how we could avoid unpacking the repository
archive before we verify the signed tag.

As to why the builders lack Internet access, I wasn't around when that
was decided but it helps ensure that the source RPM packages actually
contain the source code.

Björn Persson

Attachment: pgpu7sPig6eMZ.pgp
Description: OpenPGP digital signatur

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to