验证二进制文件是否确实使用特定版本的 git release 构建

验证二进制文件是否确实使用特定版本的 git release 构建

如何验证二进制文件实际上是使用特定版本的 git commit/release 构建的,而不是从修改版本构建的。

对于小型项目,我们可以自己构建,但对于像 Android 自定义 ROM 这样的大型项目,如何验证构建是否确实来自他们声称的 git 版本?

编辑:不能指望开源二进制文件被签名,因为它们是免费的。下载来自第三方位置。

答案1

不能指望开源二进制文件被签名,因为它们是免费的。

这里没有矛盾:签名也是免费的。但我认为这没什么用,因为有人可能会恶意地从修改过的源代码构建,然后对二进制文件进行签名。因此,只有当您信任原始构建者并希望确保二进制文件确实是他们提供的而不是更改过的版本时,签名才有效。

听起来你正在寻找可重复的构建。要实现这一点,项目必须基于支持可重现构建的技术堆栈和工具链。如果不是,那你就倒霉了。如果是,你可以自己构建并比较结果。你说得对,这可能不适用于大型项目。不幸的是,安全性往往是以牺牲便利为代价的。

值得注意的是,你最终也相信工具链并不恶意。对于您正在构建的硬件也是如此。您必须信任某人,除非您愿意自己构建硬件并对整个工具链进行逆向工程。

相关内容