假设我在美国/英国以外的一家大型服务机构工作。我们广泛使用 UNIX 和 Linux 服务器。
通读这篇文章,它提到将后门插入 C 编译器很容易,然后用该编译器编译的任何代码也将包含后门。现在鉴于最近有关 NSA/GCHQ 授权在所有加密方法、硬件和软件中放置后门/弱点的泄密事件,编译器现在是一个关键的故障点。可能所有标准的 UNIX/Linix 发行版都可能受到损害。我们不能让流氓政府损害我们的系统、数据和客户数据。
鉴于这些信息,我想从头开始构建一个受信任的编译器,然后我有一个安全的基础来构建,这样我就可以使用该编译器从源代码构建操作系统和应用程序。
从源代码编译编译器(一个看似鸡生蛋的场景)然后从头开始编译受信任的 Unix/Linux 发行版的正确(和安全方法)是什么?
您可以假设我或其他人有能力阅读和理解安全漏洞的源代码,因此在编译之前将首先审查源代码。我真正想要的是一份从头开始安全地生成这个编译器的工作指南,可用于编译内核、操作系统的其他部分和应用程序。
如果我们要对在该堆栈上运行的操作系统或应用程序有任何信心,安全堆栈必须从基础级别开始。是的,我知道可能存在硬件后门,它们可能会在编译器构建时将一些微代码插入到编译器中。除了可能使用不是在美国设计的芯片之外,我们目前对此无能为力。让我们先对这一层进行排序,并假设我可以在插入任何后门之前在旧计算机上构建它。
正如布鲁斯·施奈尔 (Bruce Schneier) 所说:“我对工程师们说:我们建立了互联网,我们中的一些人帮助颠覆了它。现在,我们这些热爱自由的人必须修复它。”
额外链接: