虽然理论上可以彻底检查开源软件的源代码以检查后门(忽略Ken Thompson hack ),并且在电气工程方面有足够的知识,但可能会弄清楚给定的可观察电路可以做什么,但如何有没有人确定集成电路做了它应该做的事情而不是其他事情(至少是故意的)?
例如,如何确保 TPM 芯片在需要时不会真正致电您当地的安全机构,例如通过集成 GSM 调制解调器或桥接以太网端口?
即使是开放硬件的原理图,我们怎么能确定制造商(他们可能不会让你监督他们对你的个人芯片的超级秘密生产)不添加他们自己的“优化”?
虽然理论上可以彻底检查开源软件的源代码以检查后门(忽略Ken Thompson hack ),并且在电气工程方面有足够的知识,但可能会弄清楚给定的可观察电路可以做什么,但如何有没有人确定集成电路做了它应该做的事情而不是其他事情(至少是故意的)?
例如,如何确保 TPM 芯片在需要时不会真正致电您当地的安全机构,例如通过集成 GSM 调制解调器或桥接以太网端口?
即使是开放硬件的原理图,我们怎么能确定制造商(他们可能不会让你监督他们对你的个人芯片的超级秘密生产)不添加他们自己的“优化”?
从理论上讲,要确定芯片的功能,您需要将其拆开并对其进行逆向工程。在实践中,这几乎是不可能做到的。实际上,即使对于您拥有实际源代码的软件,您也不能保证代码确实总是按照您的想法执行(否则我们将能够生成无错误的代码)。
这不是一个新问题,情报机构(矛盾的说法)已经多次偶然发现它。当中情局想查明白宫的电脑没有装满中国控制的后门时,他们会怎么做?好吧,他们肯定会查看芯片是否有任何明显的东西(集成的 GSM 调制解调器具有最小的尺寸;可以通过对芯片的 X 射线扫描看到)。然而,最终,他们依赖于自凯撒大帝时代以来已证明其效率的经典调查方法:跟踪每个组件的来源、设计者、生产者、运输者等等,并对所有组件进行背景调查。涉及的个人和程序的审计。这与“认证软件”(例如Common Criteria),对其设计、规范、开发人员的背景和开发方法进行检查。
一种看待它的方式是硬件不是邪恶的——人是。所以检查人,而不是硬件。
就中央情报局而言,这意味着他们会更喜欢台湾的芯片,而不是中国大陆的芯片。
只是为了把事情说清楚。
在我看来,这里有两个不同的问题:“我必须信任我的制造商吗?” 和“TPM 可以是恶意的吗?”。
以下是对第二个的一些评论:
TPM 不能做这些事情,它是一个被动/哑设备。它通常通过标准总线 (LPC) 连接。虽然 LPC 确实可以通过 LDRQ# 中断进行 DMA 访问,但 TPM 无法访问该中断。换句话说,它不能访问 DMA 引擎,也不能自己与其他设备通信。TPM 可以发起的任何攻击都必须是被动的,例如侧信道攻击。
英特尔实施的新 TPM 实际上作为应用程序在平台控制器中心(以前称为内存控制器中心,又名北桥)中运行。它们在AMT之外的Intel Management Engine之上运行,并捆绑在 vPro 旗舰产品下。您可以将 Intel 的 ME 视为在 ring -3 中运行的操作系统,因为它运行在完全独立的 CPU(不是您的主 CPU)上,并且可以完全访问您的系统内存(通过 Intel UMA)。因此,有人可能会争辩说,那些 iTPM(集成 TPM,实际上它是在 ME 上运行的任何应用程序)具有活跃并执行您描述的那种事情的能力。
那时的问题是,有人可以为英特尔 ME/AMT 安装后门吗?是的,这是可能的。不太可能,但可能。您需要利用它,或者您需要 ME 签名密钥。另外,回到您的第一个问题,您的制造商能否为英特尔 ME/AMT 安装后门?一样的答案。
ps 在某些时候,BadBIOS 背后的故事转而质疑这是否真的发生(即非常强大且可移植的漏洞利用)。
几年前(实际上是 10 年)我在 Blackhat 做了一次演讲,重新审视了 Trusting Trust:http : //www.blackhat.com/presentations/bh-usa-04/bh-us-04-maynor.pdf
我在 2005 年为 Linux Journal 写了一篇文章:http : //www.linuxjournal.com/article/7839
我已经研究这个主题将近 15 年了,我可以告诉你 Thompson 文章的要点是,除非你验证环境中的每个组件,否则你不能。虽然逻辑告诉你一个木马程序的硬件或软件可能有一个可疑的二进制 blob,它实际上会执行反向 shell,但它可能更加微妙。2005 年的文章重点介绍了为 strncpy 创建存根并实际使用 strcpy 的示例。如果您要查看编译后的符号,一切看起来都正确,但是您认为 strncpy 已停止缓冲区溢出的任何地方现在都成为攻击向量。
在硬件方面,这个过程更加困难,因为您不能只在二进制文件上运行字符串。知识产权问题和法律的结合使移动设备之类的许多低级操作保密。越狱在打开这个黑匣子方面取得了一些成功,但不是很多。
查看我在 2009 年针对 iPhone SMS 漏洞撰写的博客:http ://blog.erratasec.com/2009/07/heres-how-we-do-that-voodoo-that-we-do.html# .UtVBoHk6JFw 对此漏洞的很多下意识反应是让 AT&T 禁用 iPhone 的 SMS 计划,人们感到安全。实际上,即使您没有 SMS 计划,您的手机也会收到来自运营商的特殊 SMS 更新,这些更新包括网络调整、信号塔更新等……设备中的后门可能就像推送信号塔更新一样简单到你的手机告诉你,你邻居引擎盖里的 IMSI 导管是一个官方的载体塔,对我们来说没问题。
简而言之,除非您制造每个组件,编写所有软件,拥有电话公司,并且能够通过有利的研究法律,否则您无法知道您的设备是否被后门。
我不能完全回答“如何信任?”,但我想至少贡献一个有用的想法。正如其他答案中已经说明的那样,完全有两种选择:
尽管这些提供的选项在产生一定程度的完全信任方面表现出色,但它们显然是不切实际的。就时间和物质努力而言,为信任付出的代价是巨大的。
在某种程度上,我想添加的想法作为两个提供的选项的有限替代方案,可能取决于牺牲一些舒适性或功能性。这个想法的逻辑是:
为了从抽象到更实际的水平,让我举个例子来说明。
我们假设您的系统中有一个恶意 IC,如您的问题中所建议的那样,它将使用 GSM/通信向攻击者发送数据。鉴于我们满足 3 并且您的 IC 功能不依赖于通信,因此在功能上与通信分离,以及与通信设备物理分离(让我们假设唯一可用的 GSM/调制解调器是插入的 USB 设备),那么您可以相信您的 IC 不会通过使 USB 设备不在物理上并且通过此功能连接来向攻击者发送数据。
正如在软件中(例如在 LSM 中看到的 apparmor),这个想法是通过隔离/分离将每个 IC 限制为仅具有必要的功能必要的连接性。
虽然可能无法制造复杂的 IC,但更可能制造一种复杂得多的 IC,它仅通过硬件按需连接(即通过软件)根据当前需要切换组件。通过限制可用的连通性,因此可以获得一些信任。