[Nix-dev] Deterministic(bit-perfect) Builds
phreedom at yandex.ru
phreedom at yandex.ru
Tue Jun 25 16:18:46 CEST 2013
В письме от Вторник 25 июня 2013 15:40:11 пользователь Marc Weber написал:
> Hi Evgeny Egorochkin,
>
> I've created this page long time ago:
> https://nixos.org/wiki/Nix_impurities
>
> So how do you exactly "fix" those impurities?
Not all these impurities need to be fixed. In fact it's enough to simply
terminate the build if it does something really unusual and ask the user to
patch it. If the build system really wants to break purity, it can launch a
benchmarking attack anyway. But then again such a build system can be quickly
found and patched assuming that 99.9% of other packages build reliably.
I have hard time coming up with any way to weaponize benchmarking. It can be
used to roughly identify the building machine.If the number of users is small,
it can compile in a backdoor targetted to a paranoid user who compiles
everything from source if this user's hardware config is known and unique. But
this requires that the source code is already compromised so all these tricks
are probably useless.
> Maybe consider updating that wiki adding a line
> "fixed by doing X"
As I said, I'd rather identify the rare build that does most of those nasty
things and fix it.
I would try intercepting and sanitizing date, uname, /proc/meminfo. let file
access to the build dir and nix store flow freely and abort for everything else
+- some minor tweaks. Shouldn't be too hard and would cover a very large
subset of builds. There might be some nastiness with tests though :(
More information about the nix-dev
mailing list