一、什麼是可信計算

1.1 可信計算核心技術

1.2 可信計算髮展

1.3 TPM 安全芯片、SGX 及 TrustZone
1.3.1 TPM 安全芯片
1.3.2 Intel SGX
1.3.3 ARM TrustZone
1.3.4 SGX 與 TrustZone 的差異

1.4 SGX 面臨的問題

二、區塊鏈與可信計算

2.1 SGX 類似技術

2.2 各類技術的應用

三、總結及個人相關領域投資邏輯

可信計算在區塊鏈行業中的應用及投資邏輯 | NodeCapital

一、什麼是可信計算

可信計算(Trusted Computing)可以定義爲「在計算和通信系統中廣泛使用基於硬件安全模塊支持下的可信計算平臺,以提高系統整體的安全性。」[1]. 早期可信計算的發展主要是以 TCG (國際可信計算工作組)組織爲主。

1.1 可信計算核心技術

可信計算是一個由多種計算機相關技術組合而成的,其實有 5 個技術概念是可信計算的核心:

  1. Endorsement key
    簽註密鑰,簽註密鑰是一個 2048 位的 RSA 公共和私有密鑰對,它在芯片出廠時隨機生成並且不能改變。這個私有密鑰永遠在芯片裏,而公共密鑰用來認證及加密發送到該芯片的敏感數據。
  2. Secure input and output
    安全輸入輸出安全輸入輸出是指電腦用戶和他們認爲與之交互的軟件間受保護的路徑。當前,電腦系統上惡意軟件有許多方式來攔截用戶和軟件進程間傳送的數據。例如鍵盤監聽和截屏。
  3. Memory curtaining
    儲存器屏蔽儲存器屏蔽拓展了一般的儲存保護技術,提供了完全獨立的儲存區域。例如,包含密鑰的位置。即使操作系統自身也沒有被屏蔽儲存的完全訪問權限,所以入侵者即便控制了操作系統信息也是安全的。
  4. Sealed storage
    密封存儲密封存儲通過把私有信息和使用的軟硬件平臺配置信息捆綁在一起來保護私有信息。意味着該數據只能在相同的軟硬件組合環境下讀取。例如,某個用戶在他們的電腦上保存一首歌曲,而他們的電腦沒有播放這首歌的許可證,他們就不能播放這首歌。
  5. Remote attestation
    遠程認證遠程認證准許用戶電腦上的改變被授權方感知。例如,軟件公司可以避免用戶干擾他們的軟件以規避技術保護措施。它通過讓硬件生成當前軟件的證明書。隨後電腦將這個證明書傳送給遠程被授權方來顯示該軟件公司的軟件尚未被幹擾(嘗試破解)。

這 5 個關鍵技術是一個完備的可信計算系統所應該擁有的。

1.2 可信計算髮展

可信計算最初期發展方向爲 TPM 硬件芯片。TPM 全稱爲 Trusted Platform Modular (可信賴平臺模塊),是可信計算領域的規範標準。此規範由可信賴計算組織(Trusted Computing Group,TCG)制定。TCG 的前身爲信賴運算平臺聯盟(Trusted Computing Platform Alliance,TCPA),於 1999 年 10 月份由多家 IT 巨頭聯合發起成立,初期加入者有康柏、HP、IBM、Intel、微軟等,該聯盟致力於促成新一代具有安全且可信賴的硬件運算平臺。2003 年 3 月,TCPA 增加了諾基亞、索尼等廠家的加入,並改組爲可信賴計算組織(Trusted Computing Group,TCG),該組織希望從跨平臺和操作環境的硬件和軟件兩方面,制定可信賴電腦相關標準和規範,因此提出了 TPM 規範。其中 TPM1.2 規範比較經典,大多數廠家的芯片都以 TMP1.2 爲標準,該規範現已經升級到 2.0,也稱之爲「Trusted Platform Module Library Specification」[2]。

隨着可信計算的發展,可信計算的研究方向已經由傳統硬件芯片模式轉向了可信執行環境(TEE, Trusted Execution Environment)這種更容易被廣泛應用的模式,基於 Intel 芯片的 SGX 以及基於 ARM 開源框架的 TrustZone 是可信執行環境中最被廣泛認知且應用的。

1.3 TPM 安全芯片、SGX 及 TrustZone

1.3.1 TPM 安全芯片

TPM 安全芯片是指符合 TPM (可信賴平臺模塊)標準的安全芯片,它能有效的保護 PC,防止非法用戶訪問。安全芯片主要是針對商業用戶,需要配合軟件進行使用。主要擁有下列幾個應用場景。

  1. 存儲、管理 BIOS 開機密碼以及硬盤密碼:將密鑰存儲於固化在芯片的存儲單元中,使其安全性要大爲提高。
  2. TPM 安全芯片可以進行範圍較廣的加密:除了開機密碼,硬盤密碼的儲存,用戶也可以將應用軟件密碼存入芯片當中。
  3. 加密硬盤的任意分區:配合軟件可以在加密硬盤中的任意一部分,並將敏感數據存入其中。電腦的備份恢復功能是該功能的一種應用。

1.3.2 Intel SGX

Intel SGX 全稱 Intel Software Guard Extensions,是對因特爾體系(IA)的一個擴展,用於增強軟件的安全性。將合法軟件的安全操作封裝在 enclaves (飛地)中,保護其不受惡意軟件的攻擊,特權或者非特權的軟件都無法訪問 enclaves,也就是說,一旦軟件和數據位於容器中,即便操作系統或者和 VMM (Hypervisor)被攻破,也無法影響容器裏面的代碼和數據。一個 CPU 中可以有多個安全 enclaves。

Intel SGX 的最大優勢在於其只信任自己和 Intel CPU,此機制將 SGX 的可信級別提高到了硬件級別。軟件層面的攻擊甚至操作系統層級的攻擊都無法威脅到 SGX 創造的可信環境。此架構很利於用戶使用目前基於多租戶雲服務架構下的軟件,因爲即使黑客通過雲端植入向 PC 控制底層操作系統(OS),因爲 SGX 只信任自己和 Intel CPU 的屬性,也無法操縱底層操作系統對 SGX 進行攻擊。目前,Intel 在 6 代酷睿處理器之後全部配備了 SGX 可信環境。

1.3.3 ARM TrustZone

相對於基於 Intel 系統特有的可信計算環境 SGX,TrustZone 是 ARM 處理器所特有的安全計算環境。不同於 Intel SGX 可以生成多個完全封裝的 enclaves,TrustZone 將一個 CPU 劃分爲兩個平行且隔離的處理環境,一個爲普通運行環境,另一個爲可信運行環境。因爲兩個環境被隔離,所以很難跨環境操作代碼及資源。同時在程序想要進入可信運行環境中時,需要執行安全監控中斷指令,讓操作系統檢查其安全性只有通過檢驗的程序才能進入安全區。此機制確保了 TrustZone 的安全性,但也意味着整個系統的安全性由底層操作系統(OS)來全權負責。

隨着 ARM 芯片的普及,TrustZone 可信環境獲得了更加廣泛的應用。目前應用主要集中在機頂盒、車載設備以及最常見的智能手機尤其是配備 Android 系統的。例如高通的 Qcomsee、三星的 Trustonic 以及 Google 的 Trusty。蘋果的 IOS 是個特例,因爲他雖然使用 ARM 處理器,但是不使用 TrustZone。而是使用自己研發的類似於 Intel SGX 機制的 Secure Enclave (安全飛地)來處理其安全相關的任務。

1.3.4 SGX 與 TrustZone 的差異

比較 SGX 和 TrustZone,兩種安全環境還是有些不同的。主要表現爲以下幾點:

  1. SGX 是 Intel 處理器中的可信環境,TrustZone 爲 ARM 處理器中的可信環境。兩個應用場景存在不同,Intel 主要爲 PC 而 ARM 主要爲手機、機頂盒等小型移動設備。
  2. SGX 的理論安全性相對於 TrustZone 更高,因爲 SGX 的安全威脅處於操作系統下的硬件層,而 TrustZone 的安全威脅可以來自於操作系統層。
  3. 一個 Intel CPU 中可以存在多 enclaves 可信環境,而 TrustZone 不同,只有兩個環境分別爲普通環境以及安全環境。
  4. 使用 TrustZone,開發難度相對來說較小。因爲其本質爲將可信資源與非可信資源在硬件上實現隔離。而 SGX 不同,開發者需要重構代碼。雖然 Intel 提供了 SGX 的 SDK 來協助對接,但是對接的工作量依然很大,因此由於開發造成的安全問題是 SGX 開發者需要面對的一個大問題。

1.4 SGX 面臨的問題

對方的負擔

  1. SGX 是一個高度中心化的技術,其內嵌於 Intel 芯片,同時也是 Intel 公司的一項商用產品。這就意味着如果 Intel 芯片或其服務器出現問題,或者 Intel 關閉此項功能,將會影響到 SGX 的使用,基於其所做的項目將無法運轉。
  2. 同時因爲 SGX 被 Intel 所控制,如果想將 SGX 進行商用,節點使用 SGX 是需要同 Intel 簽署協議並付費,同時需要基於 SDK 進行大量的代碼開發,這樣使 SGX 的使用成本較高。
  3. SGX 雖然同其他技術相比比較快,但效率仍然很難滿足大規模的商業應用。因爲 CPU 本身的空間較小,而且因爲 SGX 在硬件層,意味着 pages 在進入以及離開硬盤的時候都需要進行加密,因此運行速度還是比較慢的,並且提速的難度較大。
  4. SGX 到目前爲止已經爆發過兩個較大的漏洞。

(1) 第一個是 SgxSpectre 攻擊,SgxSpectre 是典型的側道攻擊(側道攻擊是指在電子設備運行過程中,通過其時間消耗,電磁輻射等附加信息泄漏而對其攻擊,這類攻擊的有效性遠高於密碼分析的數學方法)。這類攻擊之所以出現是因爲軟件庫中存在的具體代碼模式允許開發人員在應用中添加 SGX 支持,攻擊者可以通過在 SGX 的 SDK 中引入重複性代碼執行,並在執行中不斷查看緩存的大小變化來去進行攻擊。研究人員指出「SgxSpectre 攻擊完全能攻破 SGX 封裝的機密性,由於存在易受攻擊的代碼模式並難以清除,因此攻擊者可以發動針對任意封裝程序的攻擊」,此種攻擊是非常有效的。Intel 目前已經進行補丁修復但難以完全解決。

(2) 第二個是近期爆出來 Foreshadow 漏斗,Foreshadow 的漏洞的原理在於雖然病毒無法攻破 SGX 的防護,但是可以控制除 SGX 以外的信息,以及 SGX 與外界的信息交互。在這種情況下病毒可以創建一個虛假的 SGX 環境,同時病毒可以使其控制的環境相信其僞造環境爲真實的,這樣之後所有本該進入 SGX 處理的進程,將會進入由病毒創建的虛假環境。通過這種方式,攻擊者可以達到攻擊目的並獲得隱私信息。Intel 目前正在研究此種漏洞,並試圖發行補丁,解決此問題。

二、 區塊鏈與可信計算

可信計算保護數據隱私性的屬性,使其變爲區塊鏈技術生態中的重要一環。可信計算相關技術目前多與分佈式計算類項目、數據類項目以及 layer2 鏈下解決方案相結合。目前,此類項目的關注重點多在於 PC 端 CPU,因此 SGX 在區塊鏈領域相比於 TrustZone,應用更加廣泛。後文中,SGX 將被作爲重點進行分析。

2.1 SGX 類似技術

在區塊鏈相關生態中,與 SGX 相類似的技術還有如下三個。

  1. 同態加密(Homomorphic encryption)

同態加密的概念由 Rivest 等人在 20 世紀 70 年代首先提出,同態加密是指經過同態加密的數據進行運算得到一個結果,將結果進行解密,可以得到的與同一方法處理未加密的原始數據所得到的結果相同的密碼學技術。同態加密又分加法同態、乘法同態以及全同態加密。全同態加密直到 2009 年才由 Graig Gentry 提出。

  1. 安全多方計算(multi party computation)

安全多方計算由我國唯一圖靈獎得主姚期智院士提出,其提出場景爲百萬富翁問題暨「在沒有可信第三方的前提下,兩個百萬富翁如何在不泄漏自己真實財產的狀態下比較誰更有錢」。及多個持有私有數據的參與方,共同執行一個計算邏輯並獲得計算結果。但在過程中,參與的每一方均不泄漏各自數據的計算。

  1. 零知識證明(zero knowledge prove)

零知識證明,是由 S.Goldwasser、S.Micall 及 C.Rackoff 在 20 世紀 80 年代初提出的。它指的是證明着能夠在不向驗證者提供任何有用的信息的情況下,是驗證者相信某個論斷是正確的。去數學證明不同,零知識證明是概率證明,也就是說可能會存在小概率的誤差。

2.2 各類技術的應用

在目前區塊鏈行業的發展中,SGX 和零知識證明被較爲廣泛的應用。同態加密和安全多方計算因爲其技術本身的難度較大且效率較低,現階段很難在真實的應用場景中落地。而 SGX 和零知識證明已經與區塊鏈技術相結合,下面分別列舉使用這兩個技術的代表性項目:

  1. SGX 相關的區塊鏈項目在 2018 年 5 月份之後如雨後春筍般冒出,大多數項目落地的場景爲分佈式計算、AI 等方向。Covalent(簡稱 Cova) 爲其中較早提出使用 SGX 技術的,Cova 想要通過區塊鏈以及 SGX 技術來解決傳統 AI、ML (機器學習)領域 training (訓練)的問題。在 AI 領域,一個成熟的算法模型需要使用大量數據的訓練。但是許多數據因爲其本身私密性較強且價值巨大,無法直接提供給第三方用來訓練算法模型。所以造成了算法模型擁有方有強烈的數據使用需求卻無法獲得有效數據,而數據持有方想要將數據進行變現卻也因爲數據的隱私性而無法交易數據。而且常常大型的研究機構既是算法模型擁有方又是數據持有方。在這樣的背景下,Cova 項目專注於解決在保證數據隱私性的前提下讓數據流通的難題。Cova 提供的解決方案是通過區塊鏈和 SGX 來解決目前的問題。當數據買賣雙方向開始交易時,數據擁有者會給網絡發一條信息,網絡裏的所有節點收到信息後會用 SGX 生成一個 Sandbox (沙盒),這樣可證保證沙盒環境同時不被任意一個節點、數據買方和數據賣方的控制,數據買方將需要訓練的算法模型放進沙盒環境,同時數據賣方將數據放入沙盒環境當中,並開始進行訓練,當訓練任務結束後,被訓練後的算法模型的參數將返還到買方手中,同時沙盒環境自動銷燬,並將銷燬過程寫進者 TEE 中。在此過程中,SGX 負責生成沙盒,控制沙盒輸入輸出以及銷燬沙盒。這樣既保證了數據隱私性,又能使算法模型得到訓練,較好的解決了目前的問題。
    除了 Cova 之外,Ankr 項目試圖使用區塊鏈+TEE (SGX)技術解決分佈式計算的問題。Taxa 想通過 TEE (SGX)來實現智能合約的 off-chain (鏈下)運行,以此來提高可擴展性。

  2. 使用零知識證明技術的項目中,最出名的爲 Zcash。Zcash 使用零知識證明技術在不向對方提供可以證明身份的祕鑰的前提下,還能證明自己的身份。實現此過程,需要被驗證身份方回答 16 次以上的相關問題,如果全部答對才能確認其身份。被驗證身份方想要通過猜的方式答對全部 16 個問題的概率約爲 1/65536,理論上講這種可能是非常小的。同時 Zcash 會自動隱藏區塊鏈交易雙方的信息以及交易價值,只有擁有正確查看祕鑰的人才能訪問,這樣更好的保證了交易的隱私性。但是零知識證明的問題也很明顯,每筆交易都需要一系列複雜過程,因此效率較低。

三、總結及個人相關領域投資邏輯

在區塊鏈生態當中,可信計算技術不光擁有同態加密、零知識證明、多方安全計算等技術所具備的保護數據隱私性的屬性,同時可信計算可以保證計算結果是可信的,這是共享算力的基本前提,也是其他技術目前所不具備的。同時 SGX 的速率與其他密碼學解決方案相比也有着很大的優勢。但是 SGX 還不是最好的解決方案,因爲收到 Intel 中心化問題以及芯片本身安全漏洞問題的制約。希望未來可以有效率更高,更安全的解決方案出現。

從投資的角度,個人還是比較看好與可信計算結合的相關區塊鏈項目。可信計算在區塊鏈行業中有較多的結合點,並解決了目前數據和區塊鏈行業面臨的一些問題。例如在我們已投的項目中,像 Taxa 項目想要通過可信環境去運行智能合約,以此提升智能合約的效率。區塊鏈行業存在比較大的效率問題,目前很多區塊鏈項目也在試圖解決。但是鏈上的解決方案包括去中心化交易所的匹配系統都無法實現鏈上的運行,在這樣的環境下,鏈下解決方案目前可能是比較可行的,而可信計算在鏈下解決方案中將發揮重大的作用。Ankr 項目是通過可信計算來實現分佈式計算,以此保證數據的安全,此方案解決了目前雲計算無法保證數據隱私性的一大問題。Cova 項目更多是一個與數據相關的項目,使用可信計算以及區塊鏈技術去解決目前 AI、big
data 領域的一些數據相關問題。

在細分領域中,個人最看好區塊鏈技術與數據類相結合的項目。Facebook2018 年 4 月的用戶泄密事件及 10 月剛剛發生的 5000 萬用戶數據泄漏事件已經把個人信息安全問題擺上了桌面,同時在美國,歐洲等發達國家人們對個人信息隱私性,安全性的追求月越來越高,這正是區塊鏈技術以及可信計算結合所能解決的一大問題。在區塊鏈技術的基礎上加入可信計算的技術,使得數據的隱私性及安全性得到了更大的保證。未來 30 年將會是數據的時代,個人認爲可信計算與區塊鏈及數據的結合將會較好的處理未來可能所面臨的問題。

對於目前可信計算類項目的投資,個人呈謹慎態度。原因如下:

  1. 在 2018 年 7、8 月,區塊鏈行業已經爆發了一波可信計算類項目的熱潮,較多此類型的項目進入到市場。個人認爲,目前市場上已經有幾個此類型的頭部項目,如果無較大技術創新,可以先觀望目前頭部項目的落地情況再做進一步投資決策。

  2. SGX 是目前可信計算中最火的一項技術,但 SGX 出現兩個較大漏洞且存在 Intel 重度中心化的問題,現階段非常難以解決且具有很大的不確定性及侷限性。如果有其他可信計算的技術創新,或者零知識證明、安全多方計算等技術如果有突破性進展,將會是一個非常好的參與機會。

參考文獻:
[1] 侯方勇 , 周進 , 王志英 , 等 . 可信計算研究 [J]. 計算機應用研究 , 2004, 21(12):1-4
[2] 周明天 , 譚良 . 可信計算及其進展 [J]. 電子科技大學學報 , 2006(s1):116-127