Although it is possible to increase confidence in Free and Open Source Software (FOSS) by reviewing its source code, trusting code is not the same as trusting its executable counterparts. These are typically built and distributed by third-party vendors, with severe security consequences if their supply chains are compromised. In this paper, we present reproducible builds, an approach that can determine whether generated binaries correspond with their original source code. We first define the problem, and then provide insight into the challenges of making real-world software build in a "reproducible" manner-this is, when every build generates bit-for-bit identical results. Through the experience of the Reproducible Builds project making the Debian Linux distribution reproducible, we also describe the affinity between reproducibility and quality assurance (QA).
翻译:虽然通过审查源代码可以提高对自由和开放源码软件(FOSS)的信心,但信任代码并不等同于信任可执行的对应软件。这些代码通常由第三方供应商建立和分配,如果供应链受损,则会造成严重的安全后果。在本文中,我们提出可复制的构建方法,可以确定生成的二进制软件是否与其原始源代码相符。我们首先界定问题,然后深入了解如何使真实世界软件以“可复制”的方式建立起来的挑战,即当每栋建筑产生点对点结果相同时。通过可减少的建筑项目的经验,我们还要描述可减少Debian Linux的分销,我们还要描述再复制和质量保证(QA)之间的关联性。