首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何证明给定的二进制文件是从提供的源代码编译的?

如何证明给定的二进制文件是从提供的源代码编译的?
EN

Software Engineering用户
提问于 2021-01-11 00:38:01
回答 2查看 904关注 0票数 5

假设我想使用开源软件,开发者说这个软件是开源的,并提供了源代码。

现在我的问题是,如何100%地确定给定的二进制文件是从给定的源代码编译的?

当然,我总是可以编译我想要使用的每个开源项目的源代码,但是如果我想使用不止一个程序,或者如果我想使用一个iPhone而没有macbook,这是相当耗时的。

那么,我是否必须信任开发人员,二进制文件确实来自该源代码,还是有其他方法?

例如:假设我想使用信使应用程序信号。如何确保二进制文件中没有内置的后门,而不是在提供的源代码中?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2021-01-11 09:39:33

如何100%确定给定的二进制文件是从给定的源代码编译的?

唯一的方法是自己编译它,使用与构建给定二进制文件完全相同的环境,并进行比较。如果开源项目设置了CI/CD链,这就更容易了。尽管如此,如果您能够编译,您就不再需要预先构建的二进制文件了。

那么,我是否必须信任开发人员,二进制文件确实来自该源代码,还是有其他方法?

不,您必须信任分发渠道,无论是源代码存储库的下载部分还是官方软件分发渠道(RedHat回购、苹果应用商店等等)。

如何确保二进制文件中没有内置的后门,而不是在提供的源代码中?

你不能,而且你也不能确定源代码本身没有内置的后门。我的意思是,你永远没有时间去检查你想要使用的所有开源软件。

票数 6
EN

Software Engineering用户

发布于 2021-01-11 07:21:00

您想在这里的搜索引擎中添加的关键字是“可复制的构建”。这意味着,每当您在一个众所周知的配置下构建相同版本的软件时,构建输出总是完全相同的。任何人都可以重新构建软件,然后证明发布的构建是从同一个来源构建的。

有些安全敏感软件(如Torbrowser和OpenSSL )尝试了不同程度的可重复构建,一些Linux在其存储库中制造了很大一部分可复制的包,但要支持这一点通常需要对软件生态系统进行大量投资。

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/420880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档