Should we expand this to include some of these new mechanisms?
Things brought up in the debian-python thread include:
1. sigstore https://docs.sigstore.dev/
2. ssh signatures
3. signify https://man.openbsd.org/signify.1
Picking up a thread that started on debian-python@lists.debian.org: https://lists.debian.org/msgid-search/14198883.O9o76ZdvQC@galatea
Upstreams that care about supply chain security have been building
mechanisms to authenticate their releases, beyond PGP signatures.
For example, Python started providing sigstore signatures a couple of
years ago, and is now talking about the idea of dropping PGP signatures. https://discuss.python.org/t/pre-pep-discussion-stop-providing-gpg-signatures-for-cpython-artifacts/65058
We currently support including PGP signatures in source packages, and verifying them in uscan.
Should we expand this to include some of these new mechanisms?
Things brought up in the debian-python thread include:
1. sigstore https://docs.sigstore.dev/
2. ssh signatures
3. signify https://man.openbsd.org/signify.1
I see supporting them in Debian requiring:
1. Decisions on which schemes to support. I'd assume we support all that
are available in Debian and have some significant use.
Some, like sigstore, can be used in multiple modes, we'd have to make
some selections.
2. Support in uscan to verify at download/checkout time.
2.1: Syntax in watch files to locate signature files.
2.2: Path in source packages / watch files to declare trusted signers.
2.3: Syntax in watch files for signature verification in git mode.
3. Support in dpkg-source to include detached signatures in source
packages.
3.1: Declare expected formats and filename extensions.
4. Support in the archive? (Is anything necessary?)
Is this something people are interested in pursuing?
For an example of the activity that is going on in the OpenPGP ecosystem, here's a list of some of the non-GnuPG implementations already present
in Debian, by programming language:
* Python:
- PGPy
Should we expand this to include some of these new mechanisms?
Things brought up in the debian-python thread include:
1. sigstore https://docs.sigstore.dev/
2. ssh signatures
3. signify https://man.openbsd.org/signify.1
There is a general trend towards getting upstream sources from Git
rather than tarballs in Debian, but we're a long way from moving across completely, or even finding consensus to do so.
These signature mechanisms can generally be applied to git commits as
well as tarballs.
No objections to have this kind of capability, but I still strongly
believe that importing tar archives is highly suboptimal and directly branching off the upstream git repository is an highly superior workflow
and should be used as much as possible.
This being said, I maintain some packages which are released by the
upstream maintainers only as tar archives (because OpenBSD).
Also some projects release tarballs with extra additions that are notI am sure that there are counterexamples, but usually they exclude
in the same git, or they strip away directories/files that are in git,
Although, as stated by Simon, git signatures are based on SHA-1 so not unbreakable anymore, but the point here is to illustrate theThis has been already discussed and it is not true.
git-buildpackage feature.
No objections to have this kind of capability, but I still strongly
believe that importing tar archives is highly suboptimal and directly
branching off the upstream git repository is an highly superior workflow
and should be used as much as possible.
This being said, I maintain some packages which are released by the
upstream maintainers only as tar archives (because OpenBSD).
Also some projects release tarballs with extra additions that are not
in the same git, or they strip away directories/files that are in git,
but are irrelevant for users. If upstreams do that, then their intent
is that downstreams are better off consuming the tarballs.
This is not a problem though, We can have the best of both, as git-buildpackage supports dual import from both upstream git and...
tarball to maximize supply chain auditability.
You can see this in action in e.g. https://salsa.debian.org/mariadb-team/mariadb-server/-/network/debian%2Flatest?extended_sha1=f134a53ffcaad16eabedb30809837d5ee8170bc8&filter_ref=1
The upstream branch 11.4 and tag mariadb-11.4.3 has the upstream git
release contents, while the branch upstream/latest and tag
upstream/11.4.3 shows the contents of the release tarball. The diff
between these two branches shows how the upstream tarball differs from
the upstream git commit at the time. The git side can be verified with
git tag signature, and the tarball side is verified by tarball
signature (thanks to also pristine-tar being used). This
upstream/latest was then merged on debian/latest, which has git tags
signed by Debian maintainer.
If you want to see the details, see gbp.conf in the package (https://salsa.debian.org/mariadb-team/mariadb-server/-/blob/debian/latest/debian/gbp.conf).
Otto Kekäläinen <otto@debian.org> writes:
git-buildpackage supports dual import from both upstream git and
tarball to maximize supply chain auditability.
That setup sounds nice! What is your workflow to import a new upstream release?
That setup sounds nice! What is your workflow to import a new upstream release?
I see the watch file still points to the tarball:
https://salsa.debian.org/mariadb-team/mariadb-server/-/blob/debian/latest/debian/watch
Would it be possible to extend the debian/watch syntax to be able to
express both a tarball and upstream git branch?
Then 'gbp import-orig' would import both the tarball and sync git, after performing PGP tarball verification and Git branch signature
verification. I suppose you are doing that manually somehow now?
From https://github.com/MariaDB/server= [up to date] 11.4 -> upstreamvcs/11.4
Newer package available from:=> https://archive.mariadb.org/mariadb-11.4.3/source/mariadb-11.4.3.tar.gz
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 546 |
Nodes: | 16 (2 / 14) |
Uptime: | 146:09:32 |
Calls: | 10,383 |
Calls today: | 8 |
Files: | 14,054 |
D/L today: |
2 files (1,861K bytes) |
Messages: | 6,417,699 |