Phala Network 为何不受 Intel SGX 芯片漏洞影响?
2023-02-18 00:00
PolkaWorld
2023-02-18 00:00
PolkaWorld
2023-02-18 00:00
订阅此专栏
收藏此文章


原文来源于 Phala Network 官方 Medium,本文为原文译文,以下请 Enjoy:
https://medium.com/phala-network/technical-analysis-of-why-phala-will-not-be-affected-by-the-intel-sgx-chip-vulnerabilities-e045b0189dc2
 

1
 摘要
Web3 Cloud Service
20221130日,安全专家Andrew Miller曾指出,Intel SGX的漏洞给Secret Network等项目造成了极大的安全隐患,并引发了社区广泛讨论。

Intel SGX 是最广泛采用的 TEE 解决方案,Phala Network 的链下计算节点也使用它,但是 Phala 采用了一种新颖的系统设计,可以减少攻击面并减轻潜在攻击带来的影响与后果。因此,我们的开发团队认为此类漏洞对 Phala Network 的影响是可控的

本文将向各位读者解释:
  • 为什么ÆPIC 泄漏和 MMIO 漏洞破坏了 Secret Network 的安全性

  • Phala 使用 Secure Enclave(TEE)的原因

  • Phala 如何确保网络不受 SGX 漏洞的影响

  • 未来可行的安全机制


2
 Secret Network 漏洞总结

Web3 Cloud Service

1.Secret Network 漏洞造成原因

未修补漏洞的硬件(英特尔于 2022 年 8 月 9 日宣布的 ÆPIC 泄漏和 MMIO 漏洞)被允许加入 Secret Network 并运行节点。白帽报告此问题后,Secret 团队冻结了注册;Secret Network 中的唯一主解密密钥在所有节点之间共享

结合这两个原因可以看出,Secret Network 网络的保密性完全取决于网络中最不安全的节点。一旦其中任何一个遭到破坏,密钥就会泄露,用户数据也会泄露。


2.攻击者可以获得什么?
正如 SGX.Fail 网站中所阐述的那样:“这些漏洞可用于提取 Secret Network 上私人交易的主解密密钥,即共识种子(Consensus Seed)。一旦提取到共识种子,便可完全追溯披露自链开始运行之后的每一笔 Secret-4 隐私交易。”


3.Phala Network 是否可能受到相同漏洞的影响?
答案是不会。

Phala 采用了对 Worker 节点注册的访问控制和多层密钥管理[1],这点我将在后面详细介绍。

[1]:多层密钥管理是指将密钥分为不同层级,并在这些层级之间进行管理和控制。这样做可以增加安全性和控制访问权限。多层密钥管理可以用于访问控制、数据加密和身份验证等多种安全应用场景。

来源:
  • https://scrt.network/blog/notice-successful-resolution-of-xapic-vulnerability

  • https://sgx.fail/


3
 Phala 去信任化云设计
Web3 Cloud Service

为什么 Phala 需要 Secure Enclave(TEE)


Phala 是一个无需许可的去中心化云计算平台,它允许任何计算机作为 Worker 计算节点加入,因此我们的威胁模型[2]设置为在默认情况下不信任任何节点。恶意的 Worker 节点可能会尝试以下几种行为:

  • 查看用户数据;

  • 提供错误的执行结果,或根本不进行任何计算;

  • 提供低质量的服务,例如降低 CPU 性能或阻止网络访问。


[2]:威胁模型(系统)是寻找系统潜在威胁以建立对抗的策略,以建立安全的系统。

其中,服务质量(第三个问题)将由我们的供应端通证经济模型确保。此外,我们依靠 Secure Enclave(又名 TEE,如 Intel SGX)的特性和我们的密钥管理机制来确保整个系统的去信任化。

Secure Enclave 提供重要的基于硬件的安全承诺,包括:

  • 保密性:所有的内部数据都是硬件加密的;

  • 执行完整性:即使在物理上控制了操作系统和计算机,也没有人可以影响程序执行的正确性和结果;

  • 远程认证:用户可以远程验证在 Secure Enclave 内运行的硬件和软件。


如果想要了解有关 SGX 的更多详细信息,您可以阅读本文。
https://medium.com/atanetwork/introduction-to-sgx-the-eli5-3abf25e50057

这些特征也将作为我们向人们“借用”计算机算力的信任基石。值得注意的是,作为去中心化云计算平台,Phala 的核心价值在于为用户能够正确执行程序和保护用户数据的隐私提供可能,这也是 Phala 与其他仅关注 TEE 机密性的项目最大的区别

Phala 是否可以使用零知识证明(ZKP)、多方安全计算(MPC)或全同态加密(FHE)作为它的核心解决方案?

答案依次是不行,可以,可以。因为这些解决方案的运作形式不同。

  • 在零知识证明案例中,由用户自己执行计算,并只将计算的工作证明提交上链以避免隐私泄露。这与云计算场景中,用户将自己的计算任务委托给服务提供方执行完全不同;

  • 多方安全计算将计算任务分成不同的部分,因此任何一个执行者都无法知道完整的原始输入或最终输出;

  • 全同态加密使执行者直接对密文进行计算,无法知道用户的数据。


然而事实上,当前的 MPC 和 FHE 解决方案在它们可以执行的计算和性能上都有限制,因此基于硬件的解决方案仍然是最实用的选择。

我们正在探索支持 AMD 和 ARM 等其他制造商的 TEE 解决方案的可能性。通过适当的接口抽象[3],Phala 最终可以实现基于 MPC 和 FHE 的 worker。

[3]:在程序设计中,抽象是一种将复杂系统分解成独立的模块和接口的方法。这样可以使系统更加清晰和可维护,同时也更易于扩展和修改。在这里 Phala 能够实现基于 MPC 和 FHE 的 worker,就是因为 Phala 抽象出了接口使得它能将复杂的计算分成若干个简单的模块,这样 Phala 就能更灵活的对接不同的计算方式,保证了其扩展性和可维护性。


Worker 节点注册的访问控制


加入 Phala 有两个先决条件:


  • Worker 必须基于 Secure Enclave 支持的硬件。目前我们只支持英特尔 SGX,但我们对 AMD-SEV 的调查表明,它也兼容我们目前的系统;

  • 运行未经修改的 Phala 构建的程序,包括 Phala 节点和链下执行环境 pRuntime (Phala Runtime 的简称 )。



Phala 遵循“不相信,要核实”原则,并在其注册过程中应用远程认证过程。也就是说,需要 pRuntime 来生成由受信任硬件直接提供并由硬件制造商(在本例中为 Intel)认证的 RA Quotes[4]该报告包含有关硬件和软件的重要信息:

硬件信息:
  • pRuntime 是否在 SGX 内部运行;

  • 基于当前硬件和固件版本的已知漏洞。基于此,Phala 区块链将拒绝有黑名单漏洞的硬件,并为每个 Worker 节点分配一个可信等级。


软件信息:
  • 程序的哈希值,这有助于确保 pRuntime 未被修改;

  • 程序的初始内存布局,因此它的初始状态是确定的。


有了所有这些信息,我们就可以验证受信任的硬件和在其中运行的程序。此外,RA Quotes 和置信度度量使我们能够评估每个 Worker 的安全级别,并根据允许加入网络的硬件定制我们的安全策略。

[4]:Intel 硬件中 SGX 的 RA Quotes 是在确保应用程序和数据安全性时使用的一种机制。其中 RA 是指“可信度验证”,Quotes 是指“引用证明”。所以 RA Quotes 就是在确定应用程序和数据是可信的时使用的证明。

SGX 提供了一个称为“受保护的区域”的特殊环境,应用程序和数据可以在这个环境中运行和存储。

然后,SGX 通过硬件证明机制来验证受保护区域中运行的应用程序和存储的数据是否符合可信度要求,而 RA Quotes 则是将这种可信度度量结合起来确认应用程序和数据的可信度

通过这种机制,可以确保应用程序和数据在受保护的区域中运行和存储是安全可信的。


此外,Phala的供应端通证经济学旨在为 Worker 提供高质量的服务,如果想要了解更多信息,可以访问下方链接进行了解。

https://wiki.phala.network/en-us/general/phala-network/tokenomics/


多层密钥管理


Ekiden 在 2019 年的论文中提出了世界上第一个“区块链 -TEE”混合架构的密钥层次结构,并作为 Oasis 项目的基础。作为去中心化云计算平台,Phala 改进了这一设计,使其适用于超 100k 节点的大规模网络。并且,我们还引入了新的机制,如密钥轮换,以进一步提高云计算网络的稳固性。


在我们真正深入研究合约密钥管理的细节之前,读者有必要了解Phala 系统中的每个实体都有自己的身份密钥

每个用户都有自己的账户,每个 Worker 和守门人(Gatekeeper,由 Worker 选出)都有自己的 sr25519 WorkerKey 对,这是在 pRuntime 内生成的(在 SGX 中也是如此),私钥永远不会离开 SGX。

身份密钥用于:

  • 进行数字签名以标识来自不同实体的消息;

  • 使用 ECDH 密钥协议,在用户、Worker 和守门人之间建立加密通信通道。默认情况下,Phala 中的任何通信都加密。



MasterKey 是整个网络信任的根源。所有与智能合约相关的密钥,包括 ClusterKey 和 ContractKey,都是由 MasterKey 派生而来。MasterKey 由所有的守门人生成并共享(通过上面提到的加密通信通道),使得 MasterKey 的安全性完全依赖于守门人的安全性。这就是为什么守门人不同于其他 Worker 节点的原因:

  • 守门人节点的硬件具有最高的可信等级:他们对所有已知的 SGX 漏洞都免疫;

  • 与普通 Worker 节点不同,守门人的端点并不公开,你不能向它们部署合约。这避免了对守门人的远程访问;

  • 要求守门人增加质押数量,以阻止其的不良行为。


在 Phala 中,Worker 被分组成集群,以提供无服务器的计算服务。使用主密钥(通过密钥派生)为每个集群生成一个唯一的 ClusterKey,但是任何人都无法反推过程来断定 ClusterKey 的主密钥。并且,ClusterKey 被该集群中的所有 Worker 共享。

最后,当一个合约被部署到一个集群时,它也被部署到该集群中的所有 Worker。这些 Worker 将遵循确定性过程并派生 ClusterKey 以获得相同的 ContractKey。Contractkey 对于不同的合约都是独立且唯一的。

如果某些密钥泄露,有哪些漏洞?

  • 如果 WorkerKey 泄露,攻击者可以解密发送给对应 Worker 的所有消息,例如其集群的 ClusterKey,可以用来访问该集群的 ContractKey。攻击者甚至可以冒充 Worker 向用户提供虚假的结果。通过比较多个 Worker 的结果,可以检测到这种恶意活动,然后链将切断受损 Worker 并没收该 Worker 质押的 PHA;

  • 如果合约密钥泄露,攻击者可以解密该合约的状态和所有历史输入;

  • 如果一个 ClusterKey 被泄露,攻击者就可以知道该集群中所有合约的上述信息;如果主密钥泄露,则所有历史数据都将被泄露。


如果最坏的情况发生了,Phala 如何应对?


  • Phala 选择为守门人提供密钥轮换,这意味着在议会的许可下,守门人可以更新主密钥,然后相应地更新 ClusterKey 和 ContractKey。

  • 因此,当最坏的情况发生时,Phala 将首先用最新的硬件注册新的守门人,注销所有旧的并切换到一个新的主密钥。


4
 未来的安全机制

Web3 Cloud Service

1.使用多方计算管理万能钥匙

目前,相同的主密钥在所有守门人之间共享,因此如果其中任何一个守门人泄露,主密钥就会泄露。如果转化成多方安全计算,攻击者将不得不妥协需要大多数守门人来共同达成共识以获取主密钥。


2.启用 RA Quotes 刷新
由于 Phat Contract 目前不支持主网,Worker 只需要在注册期间提交一次 RA Quotes。当 Phat Contract 发布时,我们将启用定期的 RA Quotes 刷新,这样一旦报告了新的漏洞,而那些不会应用补丁,易受攻击的 Worker 节点将被大幅削减(Slash)。

最后,感谢 Andrew Miller 和包括 Christina Garman、Daniel Genkin、Stephan van Schaik 等人在内的安全研究团队为安全领域做出的贡献。正如 Andrew 所说,他的团队的目标是帮助提高安全性并减少安全事故的发生。我真诚期待与安全研究人员进行更深入的讨论,以巩固 Web3 世界的去信任基础设施。


关于作者
Dr. Shunfan(Shelven)Zhou,Phala Network 首席研究员,Phala 白皮书的作者之一,从事安全研究超 7 年。曾作为《USENIX Security Symposium 2020》《An Ever-evolving Game: Evaluation of Real-world Attacks and Defenses in Ethereum Ecosystem》以及其他关于程序分析的论文的第一作者。



  • PolkaWorld Telegram 群:

    t.me/polkaworld

  • PolkaWorld Youtube 频道:

    https://www.youtube.com/c/PolkaWorld

  • PolkaWorld Twitter:

    @polkaworld_org


更多内容


SEC 打击质押服务,DOT 是否会受影响?

平行链 dApps 如何从 Polkadot 生态系统受益?|提案分享

2023 入门区块链开发,逃离互联网裁员浪潮

关注 PolkaWorld

发现 Web 3.0 时代新机遇


点个 “在看” 再走吧!

相关Wiki

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

PolkaWorld
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开