Scott Kitterman <deb...@kitterman.com> writes:

> Today I can download any source package in the archive and verify who
> uploaded the package and is responsible for its contents.  It doesn't
> matter if I download it from the main archive or a mirror.  Personally,
> I think that's an important characteristic of our package archive, which
> is lost by tag2upload.

The same *information* is there, provided that the tag2upload metadata is
trustworthy, but it is not trivial to verify that tag2upload did its part
of the job properly.  You can trace the package back to tag2upload and you
can see who tag2upload asserted uploaded the package, and you can then
retrieve that signed Git tag and verify it, but in order to establish the
last missing link, you would have to redo the work that tag2upload did to
assemble the source package to check that it was done properly.

I think this is less of a regression than it looks like, though.  The very
important piece that I think a lot of people have been missing when
looking at the overall system is that they assume that the maintainer who
signed the source package in the archive verified that the contents of the
source package was correct.  I am fairly certain that this is not true in
nearly every case.  The maintainer verified that the source *tree* that
they were operating on was correct, and then ran some source package build
process locally on their system and blindly signed the results.  If their
local system were compromised in a way that injected malicious code into
the constructed source package, I highly doubt nearly any maintainer would
detect that as part of their normal upload workflow.

In other words, my contention is that we have never been able to properly
verify that the source package construction was done properly.  Right now,
we are completely trusting everything that happens on the maintainer's
system, based on the maintainer's signature.  This is the weakest point of
our security model.  Some amount of that is unavoidable, since we have no
other way to handle the actual signing part.  But we can get more
assurance that the source package construction was done properly than
that; we don't have to trust that the uploader's local system did it
properly (at least in the not-universal case of packages well-served by
the tag2upload protocol).

-- 
Russ Allbery (r...@debian.org)              <https://www.eyrie.org/~eagle/>

Reply via email to