Phala Network 为何不受 Intel SGX 芯片漏洞影响?
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-e045b0189dc22022年11月30日,安全专家Andrew Miller曾指出,Intel SGX的漏洞给Secret Network等项目造成了极大的安全隐患,并引发了社区广泛讨论。Intel SGX 是最广泛采用的 TEE 解决方案,Phala Network 的链下计算节点也使用它,但是 Phala 采用了一种新颖的系统设计,可以减少攻击面并减轻潜在攻击带来的影响与后果。因此,我们的开发团队认为此类漏洞对 Phala Network 的影响是可控的。
1.Secret Network 漏洞造成原因
未修补漏洞的硬件(英特尔于 2022 年 8 月 9 日宣布的 ÆPIC 泄漏和 MMIO 漏洞)被允许加入 Secret Network 并运行节点。白帽报告此问题后,Secret 团队冻结了注册;Secret Network 中的唯一主解密密钥在所有节点之间共享。结合这两个原因可以看出,Secret Network 网络的保密性完全取决于网络中最不安全的节点。一旦其中任何一个遭到破坏,密钥就会泄露,用户数据也会泄露。
正如 SGX.Fail 网站中所阐述的那样:“这些漏洞可用于提取 Secret Network 上私人交易的主解密密钥,即共识种子(Consensus Seed)。一旦提取到共识种子,便可完全追溯披露自链开始运行之后的每一笔 Secret-4 隐私交易。”
3.Phala Network 是否可能受到相同漏洞的影响?Phala 采用了对 Worker 节点注册的访问控制和多层密钥管理[1],这点我将在后面详细介绍。
[1]:多层密钥管理是指将密钥分为不同层级,并在这些层级之间进行管理和控制。这样做可以增加安全性和控制访问权限。多层密钥管理可以用于访问控制、数据加密和身份验证等多种安全应用场景。
为什么 Phala 需要 Secure Enclave(TEE)
Phala 是一个无需许可的去中心化云计算平台,它允许任何计算机作为 Worker 计算节点加入,因此我们的威胁模型[2]设置为在默认情况下不信任任何节点。恶意的 Worker 节点可能会尝试以下几种行为:[2]:威胁模型(系统)是寻找系统潜在威胁以建立对抗的策略,以建立安全的系统。其中,服务质量(第三个问题)将由我们的供应端通证经济模型确保。此外,我们依靠 Secure Enclave(又名 TEE,如 Intel SGX)的特性和我们的密钥管理机制来确保整个系统的去信任化。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 就能更灵活的对接不同的计算方式,保证了其扩展性和可维护性。
加入 Phala 有两个先决条件:
Phala 遵循“不相信,要核实”原则,并在其注册过程中应用远程认证过程。也就是说,需要 pRuntime 来生成由受信任硬件直接提供并由硬件制造商(在本例中为 Intel)认证的 RA Quotes[4]。该报告包含有关硬件和软件的重要信息:有了所有这些信息,我们就可以验证受信任的硬件和在其中运行的程序。此外,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。
MasterKey 是整个网络信任的根源。所有与智能合约相关的密钥,包括 ClusterKey 和 ContractKey,都是由 MasterKey 派生而来。MasterKey 由所有的守门人生成并共享(通过上面提到的加密通信通道),使得 MasterKey 的安全性完全依赖于守门人的安全性。这就是为什么守门人不同于其他 Worker 节点的原因:在 Phala 中,Worker 被分组成集群,以提供无服务器的计算服务。使用主密钥(通过密钥派生)为每个集群生成一个唯一的 ClusterKey,但是任何人都无法反推过程来断定 ClusterKey 的主密钥。并且,ClusterKey 被该集群中的所有 Worker 共享。最后,当一个合约被部署到一个集群时,它也被部署到该集群中的所有 Worker。这些 Worker 将遵循确定性过程并派生 ClusterKey 以获得相同的 ContractKey。Contractkey 对于不同的合约都是独立且唯一的。如果 WorkerKey 泄露,攻击者可以解密发送给对应 Worker 的所有消息,例如其集群的 ClusterKey,可以用来访问该集群的 ContractKey。攻击者甚至可以冒充 Worker 向用户提供虚假的结果。通过比较多个 Worker 的结果,可以检测到这种恶意活动,然后链将切断受损 Worker 并没收该 Worker 质押的 PHA;
如果合约密钥泄露,攻击者可以解密该合约的状态和所有历史输入;
如果一个 ClusterKey 被泄露,攻击者就可以知道该集群中所有合约的上述信息;如果主密钥泄露,则所有历史数据都将被泄露。
如果最坏的情况发生了,Phala 如何应对?
1.使用多方计算管理万能钥匙
目前,相同的主密钥在所有守门人之间共享,因此如果其中任何一个守门人泄露,主密钥就会泄露。如果转化成多方安全计算,攻击者将不得不妥协需要大多数守门人来共同达成共识以获取主密钥。
由于 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
发现 Web 3.0 时代新机遇
相关Wiki
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。