技術分析丨Phala Network爲何不受Intel SGX芯片漏洞影響?

發表於 2023-02-08 11:56 作者: 論道Web3雲服務

摘要

2022年11月30日,安全專家Andrew Miller曾指出,Intel SGX的漏洞給Secret Network等項目造成了極大的安全隱患,並引發了社區廣泛討論。

Intel SGX是最廣泛採用的TEE解決方案,Phala Network的鏈下計算節點也使用它,但是Phala採用了一種新穎的系統設計,可以減少攻擊面並減輕潛在攻擊帶來的影響與後果。因此,我們的开發團隊認爲此類漏洞對Phala Network的影響是可控的

本文將向各位讀者解釋:

  • 爲什么ÆPIC泄漏和MMIO漏洞破壞了Secret Network的安全性

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

  • Phala如何確保網絡不受SGX漏洞的影響

  • 未來可行的安全機制

Secret Network漏洞總結

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]:多層密鑰管理是指將密鑰分爲不同層級,並在這些層級之間進行管理和控制。這樣做可以增加安全性和控制訪問權限。多層密鑰管理可以用於訪問控制、數據加密和身份驗證等多種安全應用場景。

Phala去信任化雲設計

1.爲什么Phala需要Secure Enclave(TEE)

Phala是一個無需許可的去中心化雲計算平台,它允許任何計算機作爲Worker計算節點加入,因此我們的威脅模型[2]設置爲在默認情況下不信任任何節點。惡意的Worker節點可能會嘗試以下幾種行爲:

  • 查看用戶數據;

  • 提供錯誤的執行結果,或根本不進行任何計算;

  • 提供低質量的服務,例如降低CPU性能或阻止網絡訪問。

[2]:威脅模型(系統)是尋找系統潛在威脅以建立對抗的策略,以建立安全的系統。

其中,服務質量(第三個問題)將由我們的供應端通證經濟模型確保。此外,我們依靠Secure Enclave(又名TEE,如Intel SGX)的特性和我們的密鑰管理機制來確保整個系統的去信任化。

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

  • 保密性:所有的內部數據都是硬件加密的;

  • 執行完整性:即使在物理上控制了操作系統和計算機,也沒有人可以影響程序執行的正確性和結果;

  • 遠程認證:用戶可以遠程驗證在Secure Enclave內運行的硬件和軟件。

這些特徵也將作爲我們向人們“借用”計算機算力的信任基石。值得注意的是,作爲去中心化雲計算平台,Phala的核心價值在於爲用戶能夠正確執行程序和保護用戶數據的隱私提供可能,這也是Phala與其他僅關注TEE機密性的項目最大的區別

Phala是否可以使用零知識證明(ZKP)、多方安全計算(MPC)或全同態加密(FHE)作爲它的核心解決方案?

答案依次是不行,可以,可以。因爲這些解決方案的運作形式不同。

  • 在零知識證明案例中,由用戶自己執行計算,並只將計算的工作證明提交上鏈以避免隱私泄露。這與雲計算場景中,用戶將自己的計算任務委托給服務提供方執行完全不同;

  • 多方安全計算將計算任務分成不同的部分,因此任何一個執行者都無法知道完整的原始輸入或最終輸出;

  • 全同態加密使執行者直接對密文進行計算,無法知道用戶的數據。

然而事實上,當前的MPC和FHE解決方案在它們可以執行的計算和性能上都有限制,因此基於硬件的解決方案仍然是最實用的選擇。

我們正在探索支持AMD和ARM等其他制造商的TEE解決方案的可能性。通過適當的接口抽象[3],Phala最終可以實現基於MPC和FHE的worker。

[3]:在程序設計中,抽象是一種將復雜系統分解成獨立的模塊和接口的方法。這樣可以使系統更加清晰和可維護,同時也更易於擴展和修改。在這裏Phala能夠實現基於MPC和FHE的worker,就是因爲Phala抽象出了接口使得它能將復雜的計算分成若幹個簡單的模塊,這樣Phala就能更靈活的對接不同的計算方式,保證了其擴展性和可維護性。

2.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提供高質量的服務,如果想要了解更多信息,可以訪問Phala WiKi進行了解。

3.多層密鑰管理

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將首先用最新的硬件注冊新的守門人,注銷所有舊的並切換到一個新的主密鑰。

未來的安全機制

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》以及其他關於程序分析的論文的第一作者。

標題:技術分析丨Phala Network爲何不受Intel SGX芯片漏洞影響?

地址:https://www.coinsdeep.com/article/9877.html

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

你可能還喜歡
熱門資訊