这篇文章深入探讨了当前分布式密码协议和硬件在供应链安全中存在的缺陷,特别是针对安全硬件(SH)中恶意硬件的潜在风险。文章更多地关注如何验证和信任硬件,包括提出了一些完整的协议框架来进行远程认证(RA),以及对开放硬件进行深入分析,强调了开放设计对于提高硬件安全性的潜力。
每个分布式密码协议、密钥管理系统或钱包都运行在不透明的硬件上。在几乎所有情况下,我们并不能确定我们的硬件是否正在执行预期的程序,并且它实际上不会对我们产生恶意行为。许多案例 确切地 这种 背叛 已经被 发现。最新事件 证明 是致命的。这一先例建议今天可能存在未被发现的恶意硬件。
在 我们的第一篇文章 中,我们讨论了TEE的整体安全缺陷,并将需要完成的工作分为两个部分:保护已完成芯片免受远程和物理攻击的威胁,以及防止来自供应链的参与者对芯片的影响。虽然这两个类别都有很多现有的研究,但对于我们的目的来说,后者探索得更少,需要更多的基础研究,因此我们将这篇文章专门用于该主题,并将在下一篇文章中讨论远程和物理攻击者。
一个可验证的供应链触手可及。我们通过指出现有和正在进行的研究来证明这一点,它们构成了拼图的不同部分。在此过程中,我们还讨论了大量开放硬件,这将为未来的文章提供重要的背景。文章的结构如下:
部分 (II) 和 (III) 几乎在所有情况下都很重要,涉及计算机安全的方方面面。数字时代的前提是我们可以安全地在硬件上存储秘密,而我们却没有进行工作来验证这个假设。这些部分概述了我们如何开始实现这一目标。供应链安全不同于诸如 设计隐藏 技术,如 逻辑锁定,它们用于确保芯片的 设计者 —— 而不一定是用户 —— 对铸造厂正在遵循规则并且没有窃取知识产权有保证。这些技术在更大的设计中可能有用,但就其本身而言并不能保证我们所追求的特性。
由于我们的最终目标是远程证明(RA),我们还必须涵盖 (I) 和 (IV)。为了提醒,远程证明指的是说服任意第三方确定指定程序正在由不受信任的操作员控制的硬件上运行,且该操作员无法了解或干扰该程序的能力。安全硬件 (SH) 之所以能够实现这一目标,是通过说服远程验证者,程序在一块提供机密性和完整性保证的特殊硬件上运行。在本篇文章中概述的供应链问题是创造一代革命性新型 SH 的最大障碍。
远程证明和相关的密码操作需要签名,而签名是使用与硬件相关联的签名密钥执行的。因此,我们不仅需要知道硬件正在执行我们预期的操作并且具有广告的安全措施,还需要能够验证签名是否来自与预期硬件相关联的密钥。
当前半导体的信任链看起来像下面这样的结构。请注意,我们故意强调不同的角色,尽管它们通常由同一个实体扮演。
此图取自 团队合作使 TEE 工作,描绘了简化的远程证明流程。
通常,这些角色中的几个是由同一个参与者执行的。例如,英特尔既是 SGX 和 TDX(被称为“集成设备制造”)的设计者,也是铸造厂,并且也扮演证明服务的角色。在其他“无铸造厂案例”中,设计员和铸造厂是不同的。还有许多其他密钥参与其中,但流程实际上是相同的。
这一流程中最明显的安全漏洞是在第 3 步和第 6 步。用户必须假设证明服务不会发布虚假证书,并且供应链中的实体持有的硬件密钥的副本不会被获取,这些实体可能在密钥注入时保留副本,或者如果使用其他密钥生成方法,则有可能从未保护的芯片中提取密钥。在这两种情况下,用户可能会被误导相信他们正在将消息加密到运行在安全硬件上的程序,而对手实际上持有明文解密密钥 并能够对解密的用户数据运行任何恶意程序。
由于对硬件密钥和证明的担忧,下一类别的担忧是硬件特洛伊木马。即使密码身份系统按照预期工作,用户仍需假设硬件将按照广告的方式运行。由于大多数设计是完全封闭的,用户目前只是信任设计者没有添加额外的逻辑来泄露私人密钥(例如),并且铸造厂是根据设计者提供的规范制造硬件。不依赖于更改硬件设计或拥有特殊访问权限来获取密钥材料的攻击,如侧信道攻击或直接读取攻击,将留给未来的文章。然而,我们还是考虑了 削弱或禁用对这些攻击的防御 的特洛伊木马。
有 各种模型 可以用来衡量安全性。全面的分析应包括以下三个方面:
不可避免地,要构建不需要对制造供应链有强信任假设的芯片,我们需要能够物理检查芯片并将其与一些可信的参考进行比较。为了实现这一点,在它们到达验证步骤之前,已被破坏的芯片必须显示出物理损伤的迹象。硬件特洛伊木马根据定义是以物理方式体现的,因此我们有希望识别它们,但被破坏的硬件密钥并不一定是可被检测的。因此,我们必须选择一种设备设计,以生成和存储硬件密钥,从而防范供应链中的窥探行为。用学术术语来说,我们必须使用一种避免 可激活隔离 的设计。我们还需要确保在进行密码操作时无法提取硬件密钥,无论是通过 侧信道分析、故障注入、成像或电路编辑攻击。
Puff, PUF, 密钥注入
我们可以将任务分为两部分:生成密钥和存储密钥。密钥必须生成以确保其对设备是 唯一 的,并且是 不可预测 的。我们需要安全存储以使密钥 持久,因为密钥在芯片生命周期内充当标识符5。
一种常见做法是“密钥注入”。这涉及一个外部生成密钥的实体,然后通过例如将密钥烧录到 efuse 中,将密钥存储在芯片内部。(例如, Intel SGX 预配密钥)。生成密钥的实体能够保留密钥的副本,使密钥变得可预测,从而使整个系统不安全。因此,我们不考虑这种方法。
我们考虑的第一种方法是在芯片上使用 真随机数生成器 (TRNG) 来生成密钥。TRNG 使用芯片中存在的电噪声作为熵来源,查询时返回接近随机的数字。存储应该构建为仅在所有其他读取 TRNG 的方式(例如,用于测试 TRNG)都被禁用时,TRNG 才能写入。为此,存储可以被提供为一个缺少 AXI 写接口的 IP 块,而连接到内存存储缓冲区的唯一导线来自 TRNG。有几种可能的解决方案用于存储密钥。一种常见的方法是通过烧录 efuses 编码密钥。例如,苹果在其消费电子中的 安全加密 中采用了这种方法,以便于最近推出的 私人云计算。然而,熔断可以难以防御物理攻击者,因为被烧断的熔丝是相对大型的特征。有 新型存储如阻性存储器(ReRAM)或 抗熔丝 可能提供更好的替代方案。尽管已经有 商用 ReRAM 产品 ,硬件研究人员已 呼吁进行更深入的研究 来更好地理解它们的安全性。
我们考虑的第二种方法是 物理不可克隆函数 (PUF) ,它使用制造过程中的变化作为熵来源6。与 TRNG 不同,PUF 设计用于提供终生保持相同的响应,因此密钥生成作为芯片制造的副产品发生,而 PUF 本身构成了密钥存储机制。PUF 的唯一性和不可预测性来自三个重要的主张。第一,任何制造过程都不够精确,以至于能够同时生产出两个完全相同的芯片,因此不能创建出两个完全相同的 PUF。第二,PUF 是防篡改的。特别地,任何试图读取 PUF 的细节,以了解其结构中实例化的秘密的尝试都会干扰其结构,导致密钥的不可逆损坏。PUF 可以构造为使其特性适用于整个芯片,这意味着像渗透钝化顶部或硅底部的界面是不切实际的,因为这将扰动芯片的电特性,从而改变 PUF7。第三个主张是 PUF 的构造为生成的密钥提供了足够的熵以确保其安全性。
对于任何方法,促进密钥使用的逻辑也必须受到保护,以防止侧信道攻击和故障注入攻击。大多数 PUF 使用错误更正逻辑来稳定 PUF 响应,以确保确定性的密钥生成。签名或解密逻辑也必须实施,并且 密钥必须安全地传递给该逻辑。最先进的技术通过 硬件掩模 来保护此逻辑,抵御侧信道攻击,同时使用 冗余 来防止故障注入攻击。
结合上述 TRNG 和 PUF 方法,呈现出最具前景的设计。TRNG 允许对密钥生成的决定进行更精细的管理。如果密钥仅在验证时或操作员接收芯片时生成,那么在此之前可以获得芯片的参与者对威胁较少。TRNG 还使得验证更加容易,因为 TRNG 可以被抽样以检查其输出的分布。作为补充,PUF 增加了额外的防篡改特性,以及攻击者需要破坏的附加密钥。
如果我们确定 (I) 的挑战,那么应当在正确生产的芯片和受损芯片之间存在物理差异。为了检测这些差异,我们可以 相互交叉检查这些芯片。假设我们拥有检测这些差异的技术(在 III 中讨论),验证者只需标记出那些不寻常的。但是,如果 所有 芯片都有相同的特洛伊木马怎么办?
解决这类攻击需要我们能够将物理芯片与一个可关联到可审计设计 RTL 的参考(蓝图)进行交叉检查。GDS 文件(以及开放的 PDK,以确保 GDS 是从 RTL 导出的)可以很好地承担此角色,但使这些文件可访问不是一件简单的事情。要更好地理解这一挑战,我们需要深入观察硬件知识产权 (IP) 景观。
在 这场非常深入的讲话 中,Mark Davis 指出“开源”在硬件领域甚至不是一个良好定义的术语。法律环境模糊不清,没有清晰等同于 GPL 或 MIT 许可证的定义。除此之外,还有各种角色不同的文件可以开源。设计过程的每个阶段都承受着商业保密协议、严格的知识产权侵权监控和专利的负担,使其开放设计变得复杂。
通常,芯片的前端设计——RTL 和 网络列表——可以开源,因为它归属于一个方。然而,有些部分,例如 DRAM 内存控制器或时钟设计,通常是从第三方如 Cadence、Synopsys、Rambus 或 SiFive 处昂贵授权的,不能合法公开发布。RTL 是用像 VeriLog 这样的高级语言编写的,类似于以下形式:
module AOI (input A, B, C, D, output F); assign F = ~((A & B) | (C & D));endmodule
下一阶段的 GDS 文件生产需要从 RTL 导出的网络列表、EDA 软件和 PDK。PDK 是铸造厂为其工艺节点提供的,通常完全保持闭合,因为 PDK 可以揭示关于核心业务的铸造过程的信息。铸造厂家用来强制执行这项知识产权保护的商业保密协议也扩展到 GDS 文件中,因此无铸造厂设计人员即使未涉及第三方组件的情况下,也无法发布基于这些 PDK 导出的 GDS 文件。旧工艺节点是十分成熟的技术,因此某些铸造厂会公开相应的 PDK。EDA 软件也保持闭合,并且通常从为数不多的供应商中获得许可证,最常见的是 Synopsys 和 Cadence。由于使用这款软件的许可证每年要花费数十万到数百万美元,因此保护软件闭合的动机可以理解。重要的是,PDK往往是针对特定 EDA 进行认证的。下面是 GDS 文件的示意图。
正如 Mark 的演讲更详细地解释的那样,还有许多其他文件和软件位于设计师的概念与 GDSII 文件之间。对这些所有权属于多方,且各方在法律上采取措施以使其知识产权不为公众知晓。
这些法律措施的动机各不相同。在一些案例中,铸造厂希望保护先进方案不被竞争对手获取。安全性及其对安全性的感知是其他动机。设计的模糊性确实会减缓攻击,而开放设计更可能吸引最终会带来不良公关的安全研究人员。一种通过模糊性实现安全的方法已经在变得根深蒂固,以至于几乎所有安全硬件评估的通用标准,明确奖励那些不公开显上的设计8。与此同时,在一种闭合设计的行业中,过去往往缺乏动力去采取另一种方式。
这种知识产权困境的结果是,大多数设计文档不会见光。有时,这些法律限制延伸到低级别的软件/固件。例如,赋予 Intel SGX 和 TDX 安全性的至关重要的“微代码”无法公开审计。
关于一款流行的加密硬件钱包的 此解释 样地更好地捕捉了这一现状:
显而易见的是,这种封闭性对使用这些系统的用户的后一种严重后果就是,没有直接验证系统安全性属性的途径,而必须依靠私密审计。更有影响的是,任何希望建立完全开放硬件的人,都必须依赖那一点未被法律拘束的技术。对于像 DDR DRAM 接口、PCIe 和 RISC-V 核心这样的组件,封闭源状态下的先进技术远远优于开源设计,从而影响了开放设计的安全性和性能。传统的流程节点的封闭与开放技术之间的差距尤其突出。如果一个坚定的无铸造厂设计团队愿意以巨大的成本推出某一所需组件的开源版本, 但对于工艺节点及其 PDK 的选项并不存在这种情况。没有开放的 PDK,GDS 文件无法公开发布。
拥有开放 PDK 的铸造厂远远未达到现代技术节点,最先进的是 Google Skywater 的 130nm 节点9。即使是可比节点,开放的 PDK 与封闭的同类相比也存在局限性(例如,SRAM 支持不佳)。工艺节点的质量显著影响芯片的大小、成本和效率。例如, 在28nm与130nm上制造相同芯片可能会导致20倍的成本差异以及5-10倍的功耗/速度差异。当然,2nm 现代技术节点的差异则更加明显。
更好的工艺节点不仅意味着更好的经济性和性能,它们也影响安全性。随着芯片越来越密集,各种形式的物理篡改变得更加困难。例如,通过探针和电磁侧信道攻击提取信息变得更加困难。有趣的是,对硬件特洛伊木马的防御恰恰相反,随着特征越来越小,因当前成像技术的有限精度,防范会变得更为困难。今天对更好工艺节点的开放访问是非常必要的,但也许会有一个点,在这个点上,即使它们都是开放的,小工艺节点也不会更有吸引力。
一个开放源极端主义者可能希望每个设计细节都是开放的,但考虑到现状,我们需要在一个并非一切都是公开的世界中导航,至少在现在。尽管拥有 越来越大的 社区以及 商业项目致力于构建所需工具的开放版本,以设计和构建芯片,但构建完全开放硬件仍需高昂的成本,影响着芯片的性能、成本和安全。总有一个临界点,此时完全开放设计的收益超过其成本,但需要重要的工作来达到这一点。
开放一切
幸运的是,已经有几种设计是 部分 开放的。 OpenTitan、Cramium 和 Tropic Square 是构建芯片的项目,公开了许多但并非所有的芯片设计资料。通过保留 GDS 和一些其他细节不公开,芯片可以使用高质量工艺节点进行生产。然而,足够的材料是公开的,以便用户能够审计设计以寻找潜在的错误或侧信道。例如,一些侧信道缓解技术( 1, 2, 3)可以通过现有的工具在网络列表( 1, 2, 3, 4)或 RTL (1, 2) 中进行验证。还有减少厂商锁定与更易扩展的好处。为了应对特洛伊木马,我们可以全力支持开放工具和设计的运动。目标应该是获得更好的开放 PDK,并能提出足够的经济、社会和/或政治论据来促使铸造厂开放更高质量的工艺节点,使得商业上具有可行性并公开的芯片成为可能。因为某些工艺节点(例如 ~28nm10)已经存在很长时间,因此开放这些 PDK 的“边缘”并不算很大,尤其是在证明需求的情况下,现实地预期,这些 PDK 很可能会在未来1-2年内开放。
另一种方法认识到,朝着充分强大的开放硬件“栈”的前进是一项漫长而不确定的任务,反而是提出我们可以在不开放一切的情况下做什么。这个想法是尽可能去做,公开 RTL 和网络列表,并利用数学工具从公开信息中获取尽可能多的知识。
一种方法(提出者 Bunnie)是 约束逻辑密度 (即每单位面积的晶体管数量),我们可以在芯片的不同区域中期望逻辑密度。这可以依赖正式方法实现这些界限,但部分依赖于启发式方法也可能是一条可行的道路。这些启发式背后的推理是,存在显著的经济激励去开发更紧凑的逻辑技术并且广而告之,而不是偷偷申请以方便插入特洛伊木马。充分紧密的界限将使大型特洛伊木马可检测。考虑到某些(掺杂水平)特洛伊木马的小尺寸,我们还需要其他方法对特洛伊木马进行堵截。我们将在下一节中深化讨论这个问题。为逻辑密度设定上限和特洛伊木马下限的证明确实仍然需要发展,因此这应视为一个探索方向,而不是当前的选择11。
其他想法要求铸造厂选择特定的参与者获得 GDS 和 PDK 的访问权。这些选定的验证者可以利用 GDS 和 PDK 做出公共声明,创建一个芯片图像与网络列表之间的关联。这些声明将包含两项主张:
GDS==PlaceRoute(netlist, PDK)
compare(image, GDS) == true
,其中 compare
是一种公共算法。我们可以利用几种技术来实现这一点。最基本的是,只需利用被铸造厂信任的访问 GDS 和 PDK 的行为群体。铸造厂选择验证者委员会会限制我们对这个委员会信任的程度,但这当然会比现状有所改善。只要有一名委员会成员诚实,我们应该能够启动该图像。SNARKs 将提供更强的保证,但这些的可行性将依赖于所采用的复杂(开源)比较和布局与原理图(LVS)算法的复杂度,因为 SNARK 引入了高计算开销。幸运的是,我们只需构建几个此类证明,就可以用其中所构建的图像来交叉检查其他芯片。更有效的方法是利用 TEE 来生成这些证明。由于其当前有限的安全模型,这看起来有点像第一种信任委员会的想法,但引入了一些额外的安全性。上述所有方法均受限于铸造厂希望其芯片在第一位被成像的程度。如果铸造厂不希望 GDS 公开,那么他们可能也不想将证明与 GDS 呈现相似的图像公开。如果台积电、三星等得知这样的证明生成,设计团队可能会被拒绝高质量工艺节点的访问权。
数学和支持开放的思路组合是很有希望的。数学方法作为一个良好的对冲,对开放硬件运动需要花费更漫长的时间以获得速度,并有助于为 OppenTitan 这样的部分开放体系结构增加额外的保证。一种方法是技术层面的,而另一种则需要在专利和许可之间取得平衡,或说服大型企业改变其立场等,因此,各种风险完全不同。
我们可以将特洛伊木马检测技术分为破坏性和非破坏性。破坏性分析 是最先进的。破坏性分析过程通常包括剥除保护包装,然后,由于芯片实际上由许多逻辑层和互连组成,因此仔细剥去每一层逻辑,并使用 扫描电子显微镜 (SEM) 或 聚焦离子束 (FIB)12 检查每一层。这些技术已被证明可以能够检测到隐秘的掺杂级特洛伊木马。
尽管它们有效,破坏性技术揭示了重大缺点,例如,它们确实是 破坏性 的...... 破坏性技术不仅缓慢且耗资高昂,而已经使用的芯片从未经历过这样的检查过程,因此安全保证必须通过对生产的某一部分进行检查的抽样过程来推导出对手会在统计上得到分离。此外,正如第四部分所述,创建基于破坏性分析的公开可验证特洛伊木马检测协议具有挑战性,因为芯片只能检查一次,且此过程不会生成可以与芯片身份关联的证据。这些限制并不排除使用破坏性技术的可能性,但确实促使探索非破坏性替代方案。
非破坏性方法在直观上更具吸引力,但并没有发展得那么完善。现阶段分析的最先进的非破坏性技术是 X 射线相位照相法,该技术能够为芯片提供优秀的成像效果,但成本高昂且需要占据建筑面积的机器。鉴于该方法的可扩展性问题,我们暂时避开了 X 射线。但我们确实包含了一个很酷的视频,展示了 基于 X 射线的芯片 3D 渲染。
幸运的是,还有另一种有前景的非破坏性技术 确实 可扩展,即红外原位成像( IRIS)。此技术使用短波红外光对芯片进行成像。红外光可以穿透硅,但不能穿透金属,从而为我们展示金属第一层 (M1) 的空金属填充模式换言之,IRIS可以向我们显示晶体管的不在之处,但却无法展示晶体管塔的外观,也无法获得更深金属层的连接线的信息。
这种低分辨率成像意味着IRIS处于与(II)中概述的数学证明方法类似的位置。由于IRIS只能检测到晶体管密度的较大偏差,我们必须开发技术来减轻小特洛伊木马——即不需要很多额外晶体管的特洛伊木马。幸运的是,有许多候选解决方案可以协同使用。第一个“解决方案”是黑盒测试,如模糊测试或测试向量泄漏评估(TVLA)结合功率分析,可能检测到“不触发”的特洛伊木马,即“始终开启”的特洛伊木马。通过足够有效的黑盒测试,我们会留下“触发后”的特洛伊木马——例如,只有在总线上出现预设值时才会生效的特洛伊木马。考虑到针对常量值的64位比较已经需要100多个CMOS逻辑门(>400个晶体管),触发后的特洛伊木马可能足够大,以便IRIS进行了检测。
一个类似的部分解决方案是扫描链,它从逻辑上刺激芯片的逻辑,以查看行为是否如预期。扫描链会被特洛伊木马绕过,但可能可以使用形式化方法来证明能做到这一点的特洛伊木马的大小下限。值得注意的是,使用扫描链需要改变芯片设计。其他设计选择如冗余编码方案、带错误检查的分片计算和模块冗余都是将计算的足迹传播到更大数量门的方式,因此对手也必须使其特洛伊木马更加庞大,才能成功攻击电路。另一个例子是如何选择状态机状态的编码——例如,一种单热编码的状态机创建大约2^n个未使用的状态,攻击者可以在其中隐藏信息;找到稳健地击败未使用状态的重新利用的方法将使得试图从物理检查中隐藏的特洛伊木马更加复杂。
尝试插入侧信道(例如时序或功率)的特洛伊木马可能不会被IRIS直接检测到。然而,可以通过安装电路来检查此类信道,通过使用红外图像来验证该电路的正确性。例如,为减少更改处理器指令的时序的特洛伊木马,可以要求操作需要知道的时钟周期数来完成,然后引入一个计时器来测量启用和完成之间经过的时间。如果完成时间与预期时间不匹配,则会标记为错误。TVLA对于在良好形式化算法中检测时序通道也是一种选择。也许使用IRIS最具挑战性的特洛伊木马是对掺杂水平或氧化物掩模的更改,目的是减少PUF熵。
理解IRIS在更小工艺节点芯片上的性能,开发证明性地为特洛伊木马大小提供下界的技术,识别能够绕过红外成像的特洛伊攻击类别,并围绕这些滑溜的特洛伊木马上下设计,是当前的主要研究方向。我们将在文章的最后详细阐述未解的问题。
来自Bunnie的博客的图表
另一个重要的警告是,设计一个能适应IRIS的芯片可能与防范物理攻击的目标相悖。例如,扫描链的使用增加了侧信道攻击的表面积。IRIS目前也要求芯片背面暴露,从而排除了常见的防篡改技术,如防篡改网格或环氧涂层,尽管检测背面硅(土耳其PUF)干扰仍然是一种与IRIS兼容的可行防篡改机制。在验证者和用户几乎是同一实体(例如硬件钱包)时,这并不是一个大问题,因为验证者可以在“家里”对芯片施加防篡改措施。对于更复杂的用户,安装防篡改网格可能是更强的选择(我们将在下一篇文章中详细讨论防篡改措施)。但是,当公开可验证的远程认证是必要时,依赖于只能在检查后应用的防御措施,将显著复杂化验证过程,正如下一节所探讨的那样。
如果你想要更多细节,IRIS论文对不同的检测方法提供了良好的概述,而Bunnie的博客更新则提供了有关成像本身的更多细节。
由于我们的目标是远程认证,我们必须填补验证者和用户之间的差距。有一种观点认为,仅仅是检测的威胁就足以阻止大多数特洛伊木马,因为这将带来巨大的声誉成本,但我们认为这一保证形式是不够的。在这一节中,我们定义一个简单的协议,以示范如何使用有效的特洛伊木马检测方法,为最终用户提供无特洛伊木马的保证。我们希望这个协议能够激励未来的研究,以改善该协议并在设计和分析技术出现时对其进行调整。对于不需要RA的情况,只要验证技术足够便宜且易于在“家里”完成,这一部分是不必要的。
我们的最终目标是制定一些允许用户在比单纯假设大型公司的诚实性更弱的假设的基础上,相信认证对应于预期的SH。我们假设一种非破坏性的验证机制,能够成像已经具备防篡改机制的芯片,且这些机制有效。所有SH单元都是通过与单元硬件密钥相对应的公钥来识别的。我们还假设有一个治理委员会来监督这个透明的过程。
根据参数选择,该协议的分析可能得出如下声明。给定一个供应链对手,如果他们被抓到插入特洛伊木马会有C的成本,且有X%的诚实验证者,试图攻击对攻击者来说是非理性的,直到奖励成功攻击的R。 更复杂的分析应该考虑理性的验证者或用户跨验证者具有异质信任假设的模型。
该协议引入随机性,以限制由于验证者、购货者和制造商之间的勾结所带来的安全性损失,但仅此不足以保障安全。该协议的安全性也取决于如何选择验证者集合以及为这一角色构造哪些激励机制。理想情况下,该集合地理多样且抽样来自具有各种利益的参与者(学术机构、非营利组织、盈利公司等)。我们还可以扩展协议,以允许举报者提供担保并提名特定单元进行测试,或选择不参与随机分配而自己测试特定芯片。另一种扩展措施可以是故意将“应当”在检查中失败的芯片插入流水线中(同时提前对其公钥做出承诺),作为针对懒惰验证者的附加防范措施。有关勾结的更多内容,请查看Vitalik的文章。
我们为该协议做出的一个关键假设是,我们有非破坏性分析技术可用。我们在尝试避免这个假设时遇到一个问题,那就是破坏性分析无法让验证者产生证据来证实他们的声明。是的,他们可以产生SEM或FIB图像,但我们如何将这些与特定芯片关联?我们希望避免制造商被陷害的情形。或许声称这样的图像是很难伪造的,因为我们的显微镜可以进行远程验证就足够。如果只有一个设计者和铸造厂可以访问GDS,我们可以更容易地将特洛伊木马归因于这些行为者。另一方面,我们希望在多个铸造厂能够参与的情形中,而我们尚未调查伪造特洛伊木马的难度。
我们做出的另一个假设是,当验证发生时,防篡改机制可以到位。如果情况并非如此,必须在检测IC之后应用防篡改机制。简单地重复上述协议,并要求验证者在验证芯片后施加防篡改措施,并不可行,因为那么下一个验证者只能检查防篡改措施是否到位,而不能确认芯片确实没有特洛伊木马。潜在的改进措施涉及随机决定芯片是否向下一个验证者传递而不带其保护,或添加额外的破坏性抽样。
有几种方法可以扩展远程认证以防御密钥提取攻击。某些形式的攻击需要几个小时,可能破坏芯片,从而从中提取秘密。对于任何此类攻击,我们可以利用持续测试来注意何时提取了密钥。
第一个想法是使用随机性信标为注册SH生成随机挑战。预期SH必须在某个时间窗口内将签名的挑战发布到公共区块链。如果挑战的频率足够高(例如,几小时到几分钟),密钥提取攻击应导致挑战未完成。当然,由于网络故障或类似失败,可能会有诚实的挑战未完成。我们将留给用户或协议决定如何可疑地对待停机。第二个想法是在特定频率(例如每几个月)对随机抽样的芯片重复验证协议。这应能揭示物理修改芯片的攻击,并且在首先就能劝阻这类攻击。
这两种方法都无法提供万无一失的保证,因此我们认为持续认证算是一种工具,而不是灵丹妙药。攻击可能在芯片检查后发生,也可能在密钥注册于正常运行挑战协议之前。硬件特洛伊木马也可能使此类攻击快速执行,因此我们依赖我们的检测方法足够全面。那些不需要将芯片离线的侧信道和故障注入攻击显然不受此技术的阻碍,甚至可能因为关键硬件密钥的频繁使用而获得好处。幸运的是,我们有理论基础来建立对这些攻击的信心,特别是在保护硬件密钥方面(下一篇文章中将有更多细节),所需认证的频率可以被控制,以权衡针对主动与被动攻击者的防御。
下一篇文章将更详细地探讨对完整芯片攻击。
我们相信,上述技术说明了拥有更好信任假设的供应链是触手可及的。我们的写作不应被视为详尽的调查——可能有更好的技术来实现相同目标。如果你喜欢或新发明的方法更有效,请告诉我们。
我们还谈到了一些开放的问题和挑战,这将是一个很好的参与机会。高层次表述如下:
在此文章的撰写过程中,不得不感谢来自Simple Crypto的Thorben Moos。谢谢Zach Belateche、Leonardo Arias、James Ball和Nikki Sigurdson的宝贵审阅和讨论。
- 原文链接: writings.flashbots.net/Z...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!