用於安全計算的 HTTPS 是什麼?

用於安全計算的 HTTPS 是什麼?

在默認的情況下,網站的安全性還不足夠。-- Mike Bursell(作者)


在過去的幾年裡,尋找一個只以 “http://…” 開頭的網站變得越來越難,這是因為業界終於意識到,網絡安全“是件事”,同時也是因為客戶端和服務端之間建立和使用 https 連接變得更加容易了。類似的轉變可能正以不同的方式發生在雲計算、邊緣計算、物聯網、區塊鏈,人工智能、機器學習等領域。長久以來,我們都知道我們應該對存儲的靜態數據和在網絡中傳輸的數據進行加密,但是在使用和處理數據的時候對它進行加密是困難且昂貴的。可信計算(使用例如 受信任的執行環境(Trusted Execution Environments) TEEs 這樣的硬件功能來提供數據和算法這種類型的保護)可以保護主機系統中的或者易受攻擊的環境中的數據。

關於 TEEs ,當然,還有我和 Nathaniel McCallum 共同創立的 Enarx 項目 ,我已經寫了幾次文章(參見《 給每個人的 Enarx(一個任務) 》 和 《 Enarx 邁向多平臺 》)。Enarx 使用 TEEs 來提供獨立於平臺和語言的部署平臺,以此來讓你能夠安全地將敏感應用或者敏感組件(例如微服務)部署在你不信任的主機上。當然,Enarx 是完全開源的(順便提一下,我們使用的是 Apache 2.0 許可證)。能夠在你不信任的主機上運行工作負載,這是可信計算的承諾,它擴展了使用靜態敏感數據和傳輸中數據的常規做法:

  • 存儲:你要加密你的靜態數據,因為你不完全信任你的基礎存儲架構。
  • 網絡:你要加密你正在傳輸中的數據,因為你不完全信任你的基礎網絡架構。
  • 計算:你要加密你正在使用中的數據,因為你不完全信任你的基礎計算架構。

關於信任,我有非常多的話想說,而且,上述說法裡的單詞“完全”是很重要的(在重新讀我寫的這篇文章的時候,我新加了這個單詞)。不論哪種情況,你必須在一定程度上信任你的基礎設施,無論是傳遞你的數據包還是存儲你的數據塊,例如,對於計算基礎架構,你必須要去信任 CPU 和與之關聯的固件,這是因為如果你不信任他們,你就無法真正地進行計算(現在有一些諸如 同態加密(homomorphic encryption)一類的技術,這些技術正在開始提供一些可能性,但是它們依然有限,這些技術還不夠成熟)。

考慮到發現的一些 CPU 安全性問題,是否應該完全信任 CPU 有時自然會產生疑問,以及它們是否在針對其所在的主機的物理攻擊中具有完全的安全性。

這兩個問題的回答都是“不”,但是在考慮到大規模可用性和普遍推廣的成本,這已經是我們當前擁有的最好的技術了。為了解決第二個問題,沒有人去假裝這項技術(或者任何的其他技術)是完全安全的:我們需要做的是思考我們的 威脅模型 並確定這個情況下的 TEEs 是否為我們的特殊需求提供了足夠的安全防護。關於第一個問題,Enarx 採用的模型是在部署時就對你是否信任一個特定的 CPU 組做出決定。舉個例子,如果供應商 Q 的 R 代芯片被發現有漏洞,可以很簡單地說“我拒絕將我的工作內容部署到 Q 的 R 代芯片上去,但是仍然可以部署到 Q 的 S 型號、T 型號和 U 型號的芯片以及任何 P、M 和 N 供應商的任何芯片上去。”

我認為這裡發生了三處改變,這些改變引起了人們現在對 機密計算(confidential computing)的興趣和採用。

  1. 硬件可用:只是在過去的 6 到 12 個月裡,支持 TEEs 的硬件才開始變得廣泛可用,這會兒市場上的主要例子是 Intel 的 SGX 和 AMD 的 SEV。我們期望在未來可以看到支持 TEE 的硬件的其他例子。
  2. 行業就緒:就像上雲越來越多地被接受作為應用程序部署的模型,監管機構和立法機構也在提高各類組織保護其管理的數據的要求。組織開始呼籲在不受信任的主機運行敏感程序(或者是處理敏感數據的應用程序)的方法,更確切地說,是在無法完全信任且帶有敏感數據的主機上運行的方法。這不足為奇:如果芯片製造商看不到這項技術的市場,他們就不會投太多的錢在這項技術上。Linux 基金會的 機密計算聯盟(CCC) 的成立就是業界對如何尋找使用加密計算的通用模型並且鼓勵開源項目使用這些技術感興趣的案例。(紅帽發起的 Enarx 是一個 CCC 項目。)
  3. 開放源碼:就像區塊鏈一樣,機密計算是使用開源絕對明智的技術之一。如果你要運行敏感程序,你需要去信任正在為你運行的程序。不僅僅是 CPU 和固件,同樣還有在 TEE 內執行你的工作負載的框架。可以很好地說,“我不信任主機機器和它上面的軟件棧,所以我打算使用 TEE,”但是如果你不夠了解 TEE 軟件環境,那你就是將一種軟件不透明換成另外一種。TEEs 的開源支持將允許你或者社區(實際上是你與社區)以一種專有軟件不可能實現的方式來檢查和審計你所運行的程序。這就是為什麼 CCC 位於 Linux 基金會旗下(這個基金會致力於開放式開發模型)並鼓勵 TEE 相關的軟件項目加入且成為開源項目(如果它們還沒有成為開源)。

我認為,在過去的 15 到 20 年裡,硬件可用、行業就緒和開放源碼已成為推動技術改變的驅動力。區塊鏈、人工智能、雲計算、 大規模計算(webscale computing)、大數據和互聯網商務都是這三個點同時發揮作用的例子,並且在業界帶來了巨大的改變。

在一般情況下,安全是我們這數十年來聽到的一種承諾,並且其仍然未被實現。老實說,我不確定它未來會不會實現。但是隨著新技術的到來,特定用例的安全變得越來越實用和無處不在,並且在業內受到越來越多的期待。這樣看起來,機密計算似乎已準備好成為成為下一個重大變化 —— 而你,我親愛的讀者,可以一起來加入到這場革命(畢竟它是開源的)。

這篇文章最初是發佈在 Alice, Eve, and Bob 上的,這是得到了作者許可的重發。


via: https://opensource.com/article/20/1/confidential-computing

作者: Mike Bursell 選題: lujun9972 譯者: hopefully2333 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


分享到:


相關文章: