天天看點

第四十八個知識點:TPM的目的和使用方法

第四十八個知識點:TPM的目的和使用方法

在檢查TPM目的之前,值得去嘗試了解TPM設計出來的目的是為了克服什麼樣的問題。真正的問題是信任。信任什麼?首先記憶體和軟體運作在電腦上。這些東西能直接的通過作業系統進行擷取,是以能在作業系統層級的攻擊者可以通路秘密資訊(例如安全密鑰)。:如果這些密鑰直接存儲在記憶體中,并被軟體通路,那麼攻擊者很容易從存儲密鑰的記憶體位置讀取密鑰,進而危害安全性。

圍繞這一問題的一個方案是確定密鑰不會直接存儲在可以被軟體通路的計算機記憶體中。考慮到密鑰對于安全應用程式是必需的,它們必須在某個時候以軟體可以使用的狀态出現,那麼這怎麼可能呢?一種方式是使用一個軟體無法通路的密鑰來封裝記憶體中的密鑰。例如有一個單獨的硬體,其中有一個密鑰可以進行這樣的加解密操作。是以,軟體可以利用這個硬體上存儲的密鑰來做各種事情,比如将密鑰存儲在記憶體中,但永遠不能直接通路這個密鑰。

這其實就是TPM所做的。一個TPM有一個RSA密鑰對被叫做SRK(Storage Root Key,存儲根密鑰)。它的私鑰部分對所有人所有事情都保密。使用這個私有密鑰,可以使用SRK包裝(通常稱為“綁定”)其他密鑰(軟體使用的密鑰),進而保護它們不被公開。除了簡單地包裝密鑰之外,TPM還可以包裝它們并将它們綁定到特定的平台度量上。隻有當這些平台度量具有與建立密鑰時相同的值時,才能打開此類密鑰。這個過程叫做“密封”。TPMs還可以用于加密密鑰生成和執行其他加密任務,其中一個任務稱為遠端認證,它建立硬體和軟體配置的散列密鑰摘要,允許第三方驗證軟體沒有被更改。

真正需要了解的是它通過将安全性下推到硬體級别,并確定将安全性交給單獨的硬體,有它自己的固件和電路,不能從外部改變,系統不會暴露給軟體漏洞,是以更值得信賴。

是以TPM的目的是什麼?克服信任軟體完全可靠的問題。

TPM如何使用?我們提到了其中一些,首先就是綁定,可以通過SRK封裝軟體密鑰。第二個就是“密封”,将特定的密鑰綁定到度量平台上。第三,我們研究了遠端認證,并注意到TPMs也可以用于其他加密功能,如密鑰生成。

TPM