1. 程式人生 > >北大學術 | 你知道螢幕背後是誰嗎?——可信計算之遠端證明

北大學術 | 你知道螢幕背後是誰嗎?——可信計算之遠端證明

Trias聯合“北大軟微-八分量協同創新實驗室”定期舉辦技術沙龍。該實驗室成立於去年9月份,以可信計算、區塊鏈等作為主要研究方向,致力於推動智慧互聯新時代下的人機互信問題的解決。

針對沙龍具體細節問題,我們將推出由實驗室教授、博士生以及碩士生主筆撰寫的系列文章。本期文章由北京大學的碩士生趙振宇撰寫。

在Trias公眾號之前的文章中,已經對可信計算這一技術做過了介紹,(具體見《可信計算概述》那篇文章)在今天我們將對可信計算中的一個關鍵技術,遠端證明,來做一下深入的探討與剖析。當然,在此之前,我們會先簡單的介紹一下可信計算技術,以幫助讀者朋友們理解我們後面的內容。

一、可信計算是什麼?

如今計算機技術非常普及,幾乎每人都擁有一臺電腦,更廣義的,各種移動裝置,如手機,平板電腦等,在某種程度上也可以算作計算機的一種分支。雖然我們經常使用計算機,但是對計算機的安全,多數人卻依然沒有把握,甚至自己的電腦淪為黑客手下的“肉雞”也不自知。

從遠古時代的“熊貓燒香”,到後來的“木馬”,再到去年大面積爆發的“勒索病毒”,黑客們不斷用新的手法來攻擊我們的計算機。事實已經證明,單純的防火牆,或者防毒軟體,並不能完全確保電腦的安全,在此基礎上,可信計算技術出現了。

為克服上述安全問題,可信計算提供了一個新的思路:為計算平臺增加具有安全保護功能的硬體,使平臺具有一定的物理保護能力,並在這樣的平臺上通過軟硬體結合的方式構建可信計算環境。

可信計算技術提供了一種基於硬體的平臺完整性保護方案。該技術以TCG組織(Trusted Computing Group)提出的可信平臺模組(Trusted platform module, TPM)為信任根(Root-of-Trust, RoT),從主機上電開始,到BIOS啟動、GRUB及作業系統核心載入的整個過程中逐級建立信任鏈,並將度量值儲存在TPM的平臺配置暫存器(Platform configure register, PCR)中,如圖1所示。並提供遠端證實功能使得遠端使用者可以根據PCR值與度量日誌真實計算獲取平臺當前狀態,再與預期值對比判斷平臺可信。

IBM提出的完整性度量架構(Integrity Measurement Architecture, IMA)對核心進行修改,使得應用程式或者模組載入時,會自動度量應用程式二進位制、呼叫的動態連結庫以及載入的核心模組,自此,平臺從上電到當前的整個資訊均被度量,在此基礎上,平臺證實得以實現。

圖1 可信啟動[1]

二、圖靈測試與遠端證

提到遠端證明,大家可能比較陌生,但是提到圖靈測試,大家就比較熟悉了。圖靈測試指測試者與被測試者(一個人和一臺機器)隔開的情況下,通過一些裝置(如鍵盤)向被測試者隨意提問。進行多次測試後,如果有超過30%的測試者不能確定出被測試者是人還是機器,那麼這臺機器就通過了測試,並被認為具有人類智慧。

與此類似,遠端證明也是在測試者和被測試者(通常為兩臺機器)隔開的情況下,通過一些問題與證明,使測試者可以確定被測試者是安全可信的。與圖靈測試相區別的就是,圖靈測試關注的是另一端是不是一個機器,而遠端證明關心的是另一端是不是可信。舉一個例子,在實際生活環境中,假如我們在外地出差時,想要使用在公司的電腦,那我們為了保證公司的電腦是沒有被篡改過的,就可以使用遠端證明。

遠端證實是可信計算技術的一個主要應用。可信計算技術依賴於內嵌在平臺上的協處理器TPM,假設其可信,並將其作為信任根。TPM內部擁有加解密、SHA1、隨機數產生等等引擎用來處理密碼學演算法功能,並使用平臺配置暫存器PCR來記錄平臺的整個信任鏈,其中平臺剛上電時,PCR重置為0,此後每次將現有值與度量值連線後hash作為新的值,這個操作被稱為擴充套件操作TPM_extend,從而,理論上說,PCR能夠度量無限長的啟動序列。

完整性度量架構(IMA)通過在核心中打入鉤子,使得可信計算定義的信任鏈能夠擴充套件到應用層,並且在對應用層檔案進行度量時,除了將度量結果寫入PCR外,還會向度量日誌中寫入度量記錄,包括寫入的PCR序號、被度量檔案的摘要值等等,因而,如果挑戰者能夠獲取到真實的度量日誌,即可驗證被證實平臺載入的檔案是否可信。

三、遠端證明的基本流程

遠端證明(圖2)的基本流程為:

  1. 首先由挑戰者向被證實平臺提出證實請求,包括一個隨機數用來防止重放攻擊;
  2. 被證實平臺隨之蒐集在TPM製造時寫入的背書證書EK(用來標識可信平臺的唯一身份)等等,並用EK生成平臺身份金鑰AIK來避免暴露隱私,然後將EK、AIK等等傳送給隱私簽證機構(PCA);
  3. PCA通過驗證EK,驗證TPM晶片的合法性,併為之頒發身份認證證書,承認AIK的合法性;
  4. 被證實平臺通過TPM_Quote操作,使用平臺身份金鑰(AIK)對PCR值進行簽名,並隨之將簽名值與度量日誌和AIK證書傳送給挑戰者;
  5. 挑戰者首先驗證AIK證書的有效性,使用AIK公鑰對資料進行解密獲取PCR,通過PCR確保度量日誌真實可信地返回給了挑戰者,隨後則將度量日誌的每一項與預期值進行比對,判斷平臺是否可信。

注:流程中的1、2、3又叫作初始化階段,流程4、5叫作證明階段

圖 2 遠端證明流程[1]

四、PCA的替代者DAA

我們剛才通過一個第三方的隱私簽證機構PCA完成了對一個被證實平臺的遠端證明。然而,如果用心思考一下,很容易就會發現這樣做的一些缺點。首先,挑戰者進行驗證時需要驗證其證書的合法性,因為PCA完全瞭解驗證證書,一旦PCA和挑戰者進行合謀,將導致平臺的身份被洩露;其次,使用者需要與PCA進行互動以獲得AIK證書,而TPM可能有大量的AIK,那麼PCA將服務大量的AIK證書請求,這就可能導致單點故障,從而導致可用性的問題。

因此在規範TPM 1.2之後,直接匿名認證方案(Direct Anonymous Attestation,DAA)則應運而生。它提供了一種TPM無需在可信第三方的幫助下就可以直接向遠端驗證者證明可信計算平臺的真實性和可信性。

直接匿名認證協議基於TPM平臺、DAA簽署方和DAA驗證方三個實體。DAA協議包括“加入(Join)”和“簽名”/“驗證”(Sign/Verify)兩個步驟。在第一個步驟中,簽署方驗證TPM平臺,並給TPM平臺簽署DAA證書;在第二個步驟中,TPM平臺使用DAA證書與驗證方進行互動,通過“零知識證明”驗證方可以在不違反TPM平臺隱私性的前提下對DAA證書進行驗證。DAA協議支援黑名單的功能,這樣驗證方可以將那些被攻陷的TPM識別出來。

直接匿名認證作為PCA的一種替代方案,相比於PCA具有以下優點:首先,DAA提供了更高程度的匿名性,驗證方在進行證書驗證的過程中不需要了解PCA的資訊,從而避免了因為PCA與驗證方合謀而導致的TPM平臺身份洩露;其次,在DAA中,TPM使用者只需要和DAA簽署方互動一次,就可以生成多個AIK證書,這解決了PCA的可擴充套件性/可用性的問題。

今天我們的分享就告一段落了。我們首先講了可信計算技術是什麼,然後通過與圖靈測試的對比,為大家引入了遠端證明的概念,隨後我們講了遠端證明的基本流程,以及後來的遠端證明“2.0升級版”----基於DAA的遠端證明。

如果你對其中的某一部分有疑問或者想了解有關可信計算更多的知識的話,歡迎提出,歡迎收到你們的反饋!

引用:

[1] 鄒德清,羌衛中,金海.可信計算技術原理與應用.北京:科學出版社,2011,45-47.