像 99% 的用户一样,我从现成的二进制文件安装 Ubuntu。
我如何验证自己这些二进制文件实际上来自 Ubuntu 的原始源代码?
最好确认 NSA/某人没有与 Ubuntu 或 Linode(我的 VPS 提供商)合作来处理二进制文件。如果我们可以验证二进制文件,他们也不太可能首先尝试这样做,因为很容易在上面调用它们。
SPR*_*BRN 36
You can download the sourcecode and compile it yourself. But wait - first you have to check that sourcecode, because if Canonical collaborated with the NSA, they probably have entered some code somewhere to allow for a keylogger or something that can be activated remotely.
So...
但是等等——你能相信编译器吗?
如果您不愿意接受“因为 Ubuntu 这么说”,那么您就不能。
小智 5
Ubuntu 提供了在您自己的机器上编译软件包的便捷方法。但是,无法检查您下载的二进制包中的可执行文件是否是从该源代码中获得的。Ubuntu 使用的签名过程大大降低了第三方篡改软件包的风险,但您仍然必须相信在编译之前没有添加任何未在可下载源代码中反映的有害代码。
原因是要获得与编译包中完全相同的二进制文件非常困难,因为它们取决于精确的编译器版本、它的选项,并且可能还有一些路径或环境变量被编译到二进制文件中。因此,您在自己编译时将无法获得完全相同的二进制文件,这将“验证”下载的二进制文件。
实际上有一个小型研究社区正是围绕这个问题——如何使编译具有可重现性。
话虽如此,手动比较下载的二进制文件和自编译的二进制文件可以检测添加/修改的代码,因此提供二进制文件和源代码的人在二进制文件中隐藏某些内容是有风险的,因为这可以被检测到。
但是,正如已经提到的那样,还有信任编译器的问题......
| 归档时间: |
|
| 查看次数: |
3432 次 |
| 最近记录: |