可信平臺(四)通訊的端點——TPM、保護存儲

1、通訊的端點——TPM
1)端點
當考慮系統間交換數據時,安全分佈式系統必須對通訊的端點進行身份認證。
對整個安全系統,端點的組成和構建與通訊協議有着同樣的重要性。
TCG設計者認爲,端點的最小組成包括:不對稱密鑰、密鑰存儲和保護協議數據項的進程。
2)密鑰
經典的基於非對稱密鑰的信息交換,使用接收者的公鑰對信息進行加密。
此外應使用發送者的私鑰對信息進行簽名以防止被篡改。
密鑰是通訊的終點,對密鑰的不慎管理和節點的構造不合理都會導致泄密。
TPM通過密鑰管理和配置管理兩種方法來增強保密性(如:數據的保護存儲,測量和報告)。
這些方法可以組合成爲“密封”密鑰和平臺配置從而使得端點的定義更加強壯。
3)加密方法
TCG定義了四種保護信息交換的加密方法:綁定、簽名、“密封”綁定(也就是“密封”)和密封簽名。
①綁定
綁定是使用公鑰進行信息加密的一種傳統操作。
發送者使用接收者的公鑰對信息進行加密。
信息只可以使用接收者的私鑰進行解密。
當TPM將該私鑰作爲“不可移動的”密鑰來管理,那麼只有該TPM才能產生和使用這個私鑰。
因此,使用相應的公鑰加密的信息與特定的TPM“綁定”在一起。
由於可能會產生在多TPM設備中傳遞的“可移動的”的私鑰,因此,這樣的綁定除了加密以外沒有更多的用途。
②簽名
簽名同樣是傳統的操作。
使用密鑰對信息進行簽名以保證信息的完整性。
TPM將一些管理密鑰標記爲簽名密鑰,這些密鑰只能用來完成簽名數據的hash計算並加密hash結果,因此這些密鑰不能被認爲是加密密鑰。
③密封
密封比綁定多做了一步:密封的信息是與信息發送者指定的平臺測量值綁定在一起的。
解密前,必須確認平臺的當前配置狀態與平臺測量值相符。
密封的操作與加密信息(實際上是使用對稱密鑰進行加密)的關聯關係是一組PCR值和一個不可移動的非對稱密鑰。
密封信息的過程是:首先選擇一定範圍內的PCR寄存器的值,附加對稱密鑰(用來加密信息的),然後使用非對稱密鑰進行加密。
只有當平臺配置與發送者指定的PCR寄存器的值匹配時,擁有非對稱解密密鑰的TPM纔可以解密對稱密鑰。
密封是TPM的一個強大的特點。
它保證了只有在一個平臺運行於一個非常確定的已知配置的狀態下,加密的信息才能夠被解密。
④密封簽名
簽名也可以與PCR寄存器關聯使用,以更好的保證平臺的簽名是在一個特定的配置需求下完成的。
驗證者要求一個簽名必須包含一個詳細的PCR寄存器(信息)。
簽名者在簽名的過程中收集指定的PCR寄存器的信息並將信息添加到原有的信息中,作爲被簽名的信息摘要的一部分。
驗證者審查被簽名的信息中的PCR的值,就等同於審查簽名時的平臺配置。

2、保護存儲
用於存儲的根信任RTS保護委託給TPM的密鑰和數據。在簽名和解密數據時,RTS管理一小部分易失性存儲器用於存儲密鑰。(參見圖4-6中的密鑰組)。不使用的密鑰可能會被加密保存到片外,爲正在使用的密鑰讓出更多的空間。密鑰高速緩衝區管理器(KCM)在TPM外部起到管理密鑰高速緩衝區的作用。KCM接口與存儲器相連,存儲了當前不使用的密鑰。RTS比一般的保密存儲服務額外提供了存儲保密數據的功能。
RTS被優化爲存儲小規模數據,大概是一個非對稱密鑰減去一般的開銷(如:210字節的有效載荷)。可以存儲多種類型的數據,如:對稱和非對稱密鑰,口令,cookies,驗證結果和保密數據等。
對於TPM而言,有三種類型的密鑰是透明的(已知的,不保密的):
AIK密鑰;
簽名密鑰;
存儲密鑰;
密鑰的類型將在後面詳細討論。如圖4-6中所示:TPM中嵌入了兩個密鑰,存儲根密鑰(SRK)和背書密鑰(EK)。這些密鑰不能從TPM中刪除。在創建一個新的平臺擁有者的時候,同時創建一個新的SRK。這對使用原來的SRK加密的數據有副作用。

SRK由TPM產生,當確定一個TPM的所有者時,使用EK將SRK的口令加密。SRK用於保護存儲在TPM外部的密鑰。
1)密鑰的屬性
RTS管理的密鑰都有“可移動的”或是“不可移動的”屬性。密鑰的屬性決定了該密鑰是否可以從一個TPM傳遞到另一個TPM。屬性值在密鑰產生時就確定了且不可改變。也就是說,一個不可移動的密鑰永遠與一個特定的TPM關聯在一起。移動一個不可移動的密鑰,會產生一個平臺僞裝成另一個的結果。AIK就是一個很好的永不可移動的密鑰的例子。AIK密鑰就是不可移動的。
可移動的密鑰可以在不同的TPM設備間交換。這樣,無論使用者使用什麼設備,密鑰對就可以一直跟隨着他(她),即便計算平臺改變時,個體間交換的信息仍舊可以被訪問。
密鑰的屬性不能作爲不透明的數據使用。當祕密數據想要擴展爲不可移動的特性時,數據應通過RTS使用一個不可移動的密鑰進行加密存儲。這樣,加密的數據是受TPM所控制的,它不能在其他的地方被解密。也就是說,一旦一個數據可以在TPM外部被解密,它顯然是可以在系統中任意移動的。
2)密鑰的類型
TCG定義了7種密鑰類型。每種類型都附加了一些約束條件以限制其應用。TCG的密鑰可以粗略的分類爲簽名密鑰和存儲密鑰。更進一步的分類有:平臺、身份認證、綁定、普通和繼承密鑰。對稱密鑰被單獨分類爲驗證密鑰
7種密鑰類型如下:
①簽名密鑰:非對稱通用密鑰,用於對應用數據和信息簽名。簽名密鑰可以是可移動的或不可移動的。可移動的密鑰可以在TPM設備間輸入、輸出。TPM可以對應用數據進行簽名並加以是否可移動的限制。
②存儲密鑰:非對稱通用密鑰,用於對數據或其他密鑰進行加密。存儲密鑰用於對外部處理的數據和密鑰進行包裝(加密)。
③身份認證密鑰:(也稱作AIK密鑰)專用於對TPM產生的數據(如TPM功能、PCR寄存器的值等)進行簽名的不可移動的密鑰。
④背書密鑰:平臺的不可移動的解密密鑰。在確立平臺所有者時,用於解密所有者的授權數據和與產生AIK相關的數據。背書密鑰從不用作數據加密和簽名。
⑤綁定密鑰:用於加密小規模數據(如對稱密鑰),這些數據將在另一個TPM平臺上進行解密。
⑥繼承密鑰:在TPM外部生成,在用於簽名和加密的時候輸入到TPM中,繼承密鑰是可以移動的。
⑦驗證密鑰:用於保護引用TPM完成的傳輸會話的對稱密鑰。
3) 外部存儲和密鑰快速緩存管理
TPM是用於消費類計算平臺,面向低成本應用的設備。所以,TPM本身只有有限的易失性和非易失性存儲器。出於無限存儲的假定,TCG定義了外部存儲和密鑰快速緩存管理。
①外部存儲
爲了可以使用無限的密鑰和存儲空間,RTS將在外部存儲的密鑰打包成爲加密的密鑰模塊(blobs)。對於TPM外部而言,密鑰模塊是不透明的(加密的),可以存儲於任何存儲設備(如Flash,磁盤,網絡文件服務器)密鑰模塊的結構捆綁於特定的TPM,並且可能用特定的平臺配置密封。
密鑰模塊的內容利用其hash運算結果索引(引用)。對於KCM(Key Cache Manager)和執行存儲功能的應用程序而言,索引可以用於區分密鑰模塊。外部存儲的內容還包括密鑰的類型和密鑰的屬性。
②密鑰快速緩存管理(KCM)
TPM將接口公開以便於外部的程序能夠管理TPM中有限的存儲資源。管理功能和應用是獨立的,即快速存取密鑰和使用密鑰的功能是分離的。KCM只是處理密鑰的快速存儲,應用程序只關心密鑰的應用。唯一的例外是用於加密其他密鑰的存儲密鑰。KCM同時負責存儲密鑰的快速存取和使用。
使用特定平臺配置狀態進行密封(sealed)的密鑰可能在平臺不處於特定狀態時被讀取,從而提供了在平臺就緒狀態下獲得密鑰的靈活性。此時,安全性是保證的,因爲在每一次使用密鑰時,都會對平臺配置進行檢查,因此讀取(密鑰的操作)不需要被檢查。
在圖4-6中,KCM作爲外部程序承擔了在TPM中易失性存儲器中的密鑰段和外部存儲設備中的非易失性存儲器間密鑰交換的工作。KCM找到適當的密鑰段,然後決定何時用外部密鑰替換內部密鑰。當密鑰段已滿或應用程序需要使用一個特定密鑰時,TPM並不作出預先通知。因此,外部應用程序應通知TPM以上的事件何時會發生或者KCM作爲TPM的接口層,用於應用程序獲得TPM的服務。(將KCM作爲TPM的代理,可能會引起不經意的安全隱患。KCM可能會成爲密鑰使用的口令(passphrases)的關鍵點,因而成爲被攻擊的核心)。
TPM提供在TPM和存儲設備間傳遞(密鑰)時準備密鑰的接口。KCM決不能將密鑰公開。
KCM可以執行一個在KCM管理的存儲設備上進行索引、存儲和重新獲得密鑰段的模型。同時可能包含使用TPM密鑰的必要的口令管理。

















發佈了180 篇原創文章 · 獲贊 12 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章