本質上可信計算就是提供一個平台,而之后的PKI/CA則負責提供架構(基礎設施)
- 可信計算解決的問題:
解決人與程序之間、人與機器之間的信息安全傳遞。因此,“可信計算”成為信息安全發展的必由之路。
有別於傳統的信息安全技術,可信計算的目標希望杜絕的是不可信代碼的存在,包括有漏洞的或者是惡意的。
對於微機,只有從芯片、主板、BIOS和操作系統做起,采取綜合措施,才能提高微機的安全性。正是這一思想推動了可信計算的產生和發展 - 可信計算的理念
從硬件到軟件;從基礎軟件到應用系統;從PC到服務器;從移動設備到網絡;從存儲到外設。無所不包
從進入可信計算環境開始,直到退出,提供一個完整的解決方案
以標准的形式,提供一個可伸縮的、模塊化的體系架構
可信計算的概念和目標
可信計算的概念
- 可信的概念
可信是指值得信任,一個系統可信是指系統的運行(或輸入輸出關系)符合預期的結果,沒有出現未預期的結果或故障。
TCG的定義:如果一個實體的行為總是以預期的方式達到既定目標,那么它是可信的。
ISO/IEC15408的定義:一個組件、操作或過程的可信是指在任意操作條件下是可預測的,並能很好地抵抗應用程序軟件、病毒以及一定物理干擾所造成的破壞。 - 針對信息系統,實現“可信計算”需要達到以下要求:
驗證用戶的身份:驗證使用者的合法身份,可以使用該系統;
驗證平台軟硬件配置的正確性:使用者可以信任平台的運行環境,軟硬件配置沒有問題
驗證應用程序的完整性和合法性:在平台上運行的應用程序是可信的,是正版軟件且未受破壞
平台之間的可驗證性:在網絡環境下運行的多個平台之間是可以相互信任的,即這些平台本身各自可信,且可以合法地相互訪問,相互通信不存在安全問題。 - 可信根是系統的安全基礎也是安全起點,在可信網絡環境中所有安全設備都信任該可信根。可信應用將會從下層獲得安全支撐,而非可信應用可以運行於可信系統之上,但不能獲得安全支撐。
TCG的可信計算概念
- TCG聯盟制定了可信計算規范,提出了基於可信計算平台模塊(TPM)的可信計算平台(TCP)體系結構。
- 主要定義了可信計算的三個安全屬性:
可鑒別性(Authentication):信息系統的用戶可以認證與他們進行通信的對象身份。
完整性(Integrity):用戶能夠確保信息在傳輸和保存過程中不會被竄改或偽造。
機密性(Privacy):用戶相信系統能保證其信息的私密性不被泄漏。
微軟的可信計算概念
- 在2002年,微軟發布的“可信計算”白皮書中,從實施(Execution)、方法(Means)、目標(Goals)三個角度對可信計算進行了概要性的闡釋。其目標包括四個方面:
安全性(Security):用戶希望系統受到攻擊后具有恢復能力,而且能夠保護系統及其數據的機密性、完整性和可用性;
機密性(Privacy):用戶能夠控制與自己相關的數據不會泄密,並按照信息平等原則使用數據;
可靠性(Reliability):用戶可在任何需要服務的時刻獲得服務;
完整性(Integrity):強調服務提供者以快速響應的方式提供負責任的服務,且服務在傳輸和保存過程中不會被竄改或偽造。
Intel的可信計算概念
- LT技術:和TCG推出的PC實施規范有所區別,它用到了TCG定義的TPM,並基於此來構建自己的安全架構,但LT技術擴展了TCG所定義的可信計算的功能和范圍,它能夠保護處理器、芯片組和系統平台(包括內存、鍵盤、顯示部件等)以抵御黑客軟件對系統的惡意攻擊。在這種采用了硬件級安全保護的環境中,用戶的私密信息將得到很好的保護。
- TXT技術:使用硬件密鑰和子系統來控制系統內部的資源,並決定誰或什么進程能夠訪問這些資源。
可信平台的啟動
可信計算的基本功能
完整性度量、存儲和報告
- 完整性度量是一個過程,是在可信平台啟動過程中,組件(固件或軟件)加載和執行之前,其度量散列值被“擴展”到了TPM內部的平台配置寄存器(PCR)中,通過計算該組件的散列值同期望值的比較,就可以維護它們的完整性。
- 一次度量就是一個度量事件,每個度量事件由兩類數據組成:
被度量的值:嵌入式數據或程序代碼的特征值。
度量散列值:被度量值的散列值。 - 完整性報告則是用於驗證平台的當前配置,證明完整性存儲的過程,展示保護區域內存儲的完整性度量值,依靠可信平台的鑒定能力判斷存儲值的正確性。
平台證明
- 外部實體能夠確認被保護區域、受保護能力和信任根,而本地調用不需要證明。
- 通過證明,完成了遠程實體對平台身份的認證。
- 由於引入了AIK對PCR值和隨機數N在TPM的控制下的簽名,保證了平台配置信息的完整性和新鮮性,從而大大提高了通信的安全性。
受保護能力
- 受保護能力就是唯一被許可具有訪問被保護區域的特權命令集,而被保護區域就是能夠安全操作敏感數據的地方,如:內存、寄存器等。
- TPM通過實現受保護能力和被保護區域,來保護和報告完整性度量值。
平台的可信根
- TCG認為一個可信平台必須包含三個可信根:
可信度量根( Root of Trust for Measurement,簡稱RTM)
可信存儲根(Root of Trust for Storage,簡稱RTS)
可信報告根(Root of Trust for Report,簡稱RTR)
- RTM是平台啟動時首先執行的一段程序,它是由CRTM控制的計算引擎。在理想狀態下,CRTM存儲在TPM內部,但根據實現的需要,它可能需要加載到其他固件中,如:BIOS。
- RTS由TPM芯片中的PCR和存儲根密鑰(Storage Root Key,簡稱SRK)組成。處於密鑰樹根部的密鑰是最高級存儲密鑰,即存儲根密鑰SRK,它是2048位的RSA密鑰對,主要用於對由TPM使用,但存儲在TPM之外(如:硬盤)的密鑰進行保護。同時,它作為父密鑰對其子密鑰進行加密保護。
- RTR由TPM芯片中的PCR和背書密鑰(Endorsement Key,EK)組成。EK僅用於以下兩種操作:一是創建TPM的擁有者;二是創建AIK及其授權數據。
TPM
- 可信計算平台
- TPM和TCS的比較
信任鏈
信任鏈的度量過程
本質上就是一個迭代的過程。
PCR的安全性
PCR的操作方法
- 重置:重置操作發生在機器斷電或者重新啟動之后,PCR的值自動重新清零(但TCG 1.2新引入的寄存器除外)。
- 擴展:只能通過擴展操作來改變PCR的內容。擴展操作是不可交換的,即先擴展度量值A再擴展度量值B所得到的PCR值跟先擴展B再擴展A的結果是不同的。理論上PCR能夠記錄一個無限長的度量值序列,這個度量值序列反映了系統狀態的變遷。如果擴展序列中的某個度量值被改變了,那么后續的度量序列都會受到影響。
EK和AIK
密鑰類型
-
可遷移存儲密鑰並不局限於某個特定平台,可以由平台用戶的控制下在平台之間遷移。不可遷移密鑰則永久地與某個指定平台關聯。不可遷移密鑰能夠用來加密保護可遷移密鑰,反之則不行。
-
對密鑰按照功能划分並限制它們的使用,很大程度上可以增強系統的安全性。存儲密鑰、簽名密鑰、平台身份認證密鑰、綁定密鑰、密封密鑰、派生密鑰、鑒別密鑰,這7類密鑰可以粗略的分類為簽名密鑰和存儲密鑰。
密鑰安全管理
由於TPM的空間有限,有些密鑰以加密的形式存放到外部存儲區中。當要使用這些密鑰時,首先通過TSS在密鑰緩沖池中查找並判斷此密鑰是否已經存在。若存在,則說明此密鑰信息已經存在於TPM內部,不需要重新加載,直接可以在TPM中使用;否則就需要進行加載。
EK和AIK的區別和聯系
背書密鑰(EK)是TPM平台的一個不可遷移的身份認證密鑰,代表着每個平台的真實身份,每個平台都擁有唯一的一個,它是TPM唯一的密碼身份標識。EK在最初創建時必須是保密的。
然而,盡管EK代表了TPM的身份,但是如果每次證明都采用EK來進行一系列的簽名,在簽名幾十萬幾百萬甚至更多次后,攻擊者可能猜出EK。為了保護EK,證明時需要根據EK生成平台身份認證密鑰(AIK),由AIK來替代EK作為TPM身份的象征。
平台身份認證密鑰(AIK)專用於對TPM產生的數據進行簽名,用來證明平台的身份和平台的環境配置,產生過程中需要可信第三方PCA(Privacy CA,隱私CA)的支持。創建流程如下:
① 配備TPM的客戶端調用TPM_MakeIdentity以創建AIK密鑰
② TSS組織AIK請求,包括AIK公鑰部分和TPM的EK證書
③ 客戶端用PCA公鑰對AIK請求進行加密,並將加密數據發送給PCA
④ PCA驗證AIK請求,包括檢查請求中EK證書的合法性
⑤ PCA簽署AIK證書,使用客戶端的EK公鑰進行加密,然后將數據發送到客戶端
⑥ 客戶端調用TPM_ActivateIdentity以獲得AIK證書
基於AIK的身份認證過程
可信計算平台的身份認證是通過AIK來實現的。通過用戶使用的終端中TPM產生的一堆AIK密鑰,然后將背書證書、平台證書、一致性證書集中在一起,在可信的第三方PCA進行驗證后生產AIK證書。隨后將AIK存於存儲器中,並在認證服務器中相關的LDAP用戶證書目錄,便於應用系統對用戶的認證。
- TPM背書證書(Endorsement Credential,EndCred):TPM制造商簽發
- 平台證書(Platform Credential,PlatCred):由計算機平台制造商簽發,聲明TPM正確集成到平台中
- 一致性證書(Conformance Credential,ConCred):用來聲明和證實一類計算平台的實現符合TCG的哪些規范,符合哪些安全要求,可有多個,有的對應CRTM,有的對應TPM、CRTM和系統間的安全連接。
參考資料:可信計算是如何讓身份認證變得更安全的?
可信支撐軟件TSS
可信支撐軟件是操作系統層面安全應用可以調用可信計算平台提供的可信服務接口,從而為用戶提供可信服務。
TSS(TCG Software Stack)是可信計算平台上TPM的支撐軟件。 TSS 的作用主要是為操作系統和應用軟件提供使用TPM的接口。
目前,TSS主要有TSS 1.2和TSS 2.0兩個版本。其中基於TPM 2.0的TSS 2.0是最新的版本。
參考資料:可信計算概述