Brett Cannon:在 PyPI 上实现可复现构建还缺少什么
作者指出,Python 打包领域缺乏一种可复现构建的明确方法。可复现构建对于供应链安全至关重要,它允许第三方验证分发内容与源代码是否一致。该过程能够检测构建过程中的篡改行为,并识别被攻破工具的使用。即使纯 Python 轮包(wheels),若其构建后端被攻破,同样存在风险。为实现可复现构建,需要两个关键信息:源代码位置以及构建过程中所使用的软件。目前,源代码位置并未在源分发(sdists)或轮包中显式记录,尽管某些安装程序有时会记录该信息。本文提出了一种将源代码位置信息纳入分发元数据的机制。在记录构建软件方面,轮包可以利用软件物料清单(SBOMs),但源分发缺乏类似的结构化格式,因此可能需要引入新的源分发版本。作者建议构建后端可记录其执行环境,而 pip 维护者可在不增加分发生产者的负担前提下,协助记录此类信息。为使可复现性变得可见且有益,本文提出由可信验证者独立复现分发并成功向 PyPI 报告结果的构想。这将使用户能够识别经过验证的分发,并从更安全的供应链中受益。该功能应以可选附加功能的形式呈现,而非强制性要求,以避免 discouraging 用户。