A NixOS distribution developer announced the implementation of integrity verification support for the minimal ISO image (iso_minimal.x86_64-linux) using a mechanism for reproducible builds. Previously, reproducible builds were available at the package level, but they have now been expanded to the entire ISO image. Any user can create an ISO image that is fully identical to the provided downloadable ISO image and verify that it was built from the supplied source texts and contains no hidden changes. A special script has been prepared to automate the verification of the NixOS ISO image using reproducible builds. In the next phase, it is planned to ensure reproducible builds for the full ISO image with the GNOME desktop.
Reproducible builds are a crucial link in ensuring security, as they allow users to independently verify that the builds offered by the distribution match byte-for-byte with the builds compiled from the source texts. Without the ability to check the identity of a binary build, users are left with no choice but to blindly trust someone else's build infrastructure, whose compiler or build tools could be compromised, potentially leading to the insertion of hidden backdoors. To ensure reproducible builds, it is essential to replicate the contents and parameters of the build environment, use identical versions of programs, dependencies, and boot components, exclude any variation-inducing data (timestamps, random fillers, etc.), and maintain the order of file assembly and package delivery in the ISO image.
Emlékeztetjük, hogy a NixOS disztribúció a Nix csomagkezelőre épül, és számos saját fejlesztést kínál, amelyek egyszerűsítik a rendszer beállítását és karbantartását. Például a NixOS egyetlen rendszerkonfigurációs fájlt használ (configuration.nix), lehetőséget nyújt a frissítések gyors visszaállítására, támogatja a rendszer különböző állapotai közötti váltást, lehetővé teszi egyedi csomagok telepítését külön felhasználók által (a csomag a felhasználói könyvtárba kerül), és lehetővé teszi egy program több verziójának egyidejű telepítését. A Nix használatakor a csomagok külön fájlrendszerfába /nix/store vagy a felhasználói könyvtáron belüli almappába kerülnek telepítésre. Például a csomag telepítése a /nix/store/f2b5…8a563-firefox-89.0.1/ útvonalra történik, ahol a „f2b5…” egyedi azonosítójával a csomag függőségeinek ellenőrzésére szolgál.
A csomagok konténerek formájában vannak, amelyek tartalmazzák az alkalmazások működéséhez szükséges összetevőket. A csomagok között függőségek határozhatók meg, miközben a már telepített függőségek meglétének ellenőrzésére a telepített csomagok mappa hash-azonosítójának átvizsgálása történik. Lehetőség van készenléti bináris csomagok letöltésére a tárolóból (a bináris csomagok frissítésekor csak delta-változások tölthetők le), valamint forráskódok alapján történő összeállításra minden függőséggel. A csomaggyűjtemény a speciális Nixpkgs tárolóban található.
Forrás: opennet.ru
