tho...@goirand.fr writes:
> On Jun 25, 2024 5:50 PM, Russ Allbery <r...@debian.org> wrote:

>> The tag2upload proposal moves the source package build from 1 to 2. 

> NO ! That is NOT what you are proposing. There's been a 10 years long
> effort to have package reproducibility, your proposal is trowing all
> away. How does one check the reproducibility of git to source package
> transformation?

You check it exactly the same way that you check binary reproducibility:
you run it twice in different security contexts and see if you get the
same results.  *If* you're using a regularized transformation of Git to a
source package, such as those workflows implemented by dgit (and thus by
tag2upload), the problem is at least an order of magnitude easier than
binary package reproducibility.

> If we were signing source packages manifests locally, then tag2upload
> were also producing it, check it is the same as in the pushes tag, and
> used the sgnature, then we'd be good. But you don't want this because:

> - you feel it is not convenient
> - it is hard to implement

I think you are excessively focused on making the uploader one of the
checks on the reproducibility of the source package.  The uploader is does
not have unique capabilities for detecting unreproducible source builds.
The important point for reproducible source builds is to build the package
twice in separate security domains so that an attacker will have great
difficulty compromising both builds at the same time.

I completely agree with embracing reproducible source builds.  That's why
I would like more people to use tag2upload or dgit, which regularize the
source builds in a way that makes reproducibility testing easier.

>> As an aside, I'm not sure there's any ethical way to do this (and any
>> way to do this that doesn't result in people panicking about a test),
>> but the security person in me badly wants to run a red team exercise
>> with reproducible binary builds.  If we intentionally introduce a
>> (benign) bit of code into an amd64 binary build without anyone involved
>> in either reproducible builds or maintenance of that package knowing,
>> how long would it take for this to be flagged as a possible compromise?

> Are you hereby vouching for reproducibility to become RC bugs?

No?  None of those words occurred in my message?  I'm not opposed to it,
but I think the folks working on reproducible builds should be the ones to
decide when it's practical for that to be the case.

I think we're making some assumptions about the usability of binary
package reproducibility for detecting security breaches.  Those
assumptions sound good in theory, but ideally we would test them.  One of
the reasons to test them is that those last few percentage points can make
a big difference between "huh, this package became unreproducible,
probably a bug somewhere" and "we have detected a possible security
breach," and I don't know where we are right now in terms of how people
would react.

> Watch the Kosovo lightning talk where Didier shows what he did. It is a
> proven concept.

If this is the proof of concept where the *.dsc file is encoded in a Git
tag (sorry, there have been several proofs of concept and I lose track of
which person was associated with which one), I understand it and have
already said why I don't think it will work reliably enough in its current
form.  (Summary: It relies on the reproducibility of tar and compression
programs.)  We should measure reproducible source packages by comparing
the unpacked source packages.  It's a lot more robust.

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

Reply via email to