Ontwikkelaars van de NixOS-distributie hebben aangekondigd ondersteuning te hebben gerealiseerd voor de verificatie van de integriteit van de minimal iso-afbeelding (iso_minimal.x86_64-linux) met behulp van het mechanisme van herhaalbare builds. Voorheen waren herhaalbare builds beschikbaar op het niveau van individuele pakketten, maar zijn nu uitgebreid naar de volledige iso-afbeelding. Elke gebruiker kan een iso-afbeelding genereren die volledig identiek is aan de aangeboden iso-afbeelding voor download, en verifiƫren dat deze is opgebouwd uit de verstrekte bronbestanden en geen verborgen wijzigingen bevat. Voor de automatisering van de controle van de NixOS iso-afbeelding met behulp van herhaalbare builds is een speciaal script voorbereid. In de volgende fase is het gepland om herhaalbare builds te ondersteunen voor de volledige iso-afbeelding met de GNOME-desktop.
Herhaalbare builds zijn een belangrijk onderdeel van het waarborgen van de veiligheid, omdat ze de mogelijkheid bieden om zelf te controleren of de door de distributie aangeboden builds byte voor byte overeenkomen met de builds die persoonlijk zijn opgebouwd uit de bronbestanden. Zonder de mogelijkheid om de gelijkheid van de binaire build te verifiƫren, blijft de gebruiker slechts blind vertrouwen op de bouwinfrastructuur van anderen, waarvan de compromittering van de compiler of de bouwtools kan leiden tot de invoeging van verborgen achterdeurtjes. Voor het waarborgen van herhaalbare builds is het nodig om de samenstelling en parameters van de bouwomgeving te reproduceren, identieke versies van programma's, afhankelijkheden en opstartcomponenten te gebruiken, variabele gegevens (tijdstempels, willekeurige vulmiddelen, enz.) uit te sluiten, en de volgorde van het samenstellen van bestanden en het leveren van pakketten in de iso-afbeelding te behouden.
Ter herinnering: de NixOS-distributie is gebaseerd op de pakketbeheerder Nix en biedt een reeks eigen ontwikkelingen die de configuratie en het onderhoud van het systeem vereenvoudigen. Zo gebruikt NixOS een enkel systeemconfiguratiebestand (configuration.nix), is er de mogelijkheid om snel updates terug te draaien, wordt er ondersteuning geboden voor het schakelen tussen verschillende systeemtoestanden, kunnen individuele gebruikers pakketten installeren (deze worden in de thuismap geplaatst) en is het mogelijk om verschillende versies van een programma gelijktijdig te installeren. Bij het gebruik van Nix worden pakketten geĆÆnstalleerd in een aparte directoryboom /nix/store of een subdirectory in de gebruikersmap. Een voorbeeld van een pakketinstallatie is /nix/store/f2b5ā¦8a563-firefox-89.0.1/, waarbij āf2b5ā¦ā een unieke identifier is die wordt gebruikt voor afhankelijkheidsbeheer.
Pakketten worden gepresenteerd als containers die de benodigde componenten voor de werking van de toepassingen bevatten. Tussen pakketten is het mogelijk om afhankelijkheden te definiëren; hierbij wordt het bestaan van al geïnstalleerde afhankelijkheden gecontroleerd door hashes van identifiers in de directory van geïnstalleerde pakketten te scannen. Zowel het downloaden van kant-en-klare binaire pakketten uit de repository (bij het installeren van updates worden alleen delta-wijzigingen gedownload) als het samenstellen vanuit de bronteksten met alle afhankelijkheden is mogelijk. De verzameling pakketten is beschikbaar in een speciale Nixpkgs-repository.
Bron: opennet.ru
