1. 程式人生 > >對TCG的概要分析和對TPM的學習(一)

對TCG的概要分析和對TPM的學習(一)

(YOUXIANG:lichunwen1987ATqq。com)

參考TCG Specification Architecture Overview 1.4 。http://www.trustedcomputinggroup.org/ 檢索TCG Specification Architecture Overview

1      可信計算的主要規範文件

Ø  TCG體系結構總體規範(ArchitectureOverview)

總體上說明了與可信計算相關的內容。包括:定義了可信計算目標,可信計算應用場景,TCG(Trusted Computing Grounp)架構-即從平臺無關角度全域性上闡述了可信平臺模組TPM(Trusted Platform Module)的架構,功能,主要模組,工作原理,金鑰管理方式等。介紹了基於TPM的可信軟體棧TSS(TrustedSoftware Stack)的使用和應用場景,TPM命令的授權協議。

Ø  可信平臺模組規範(TrustedPlatform Module Specifications) Parts1-4

闡述了TPM的體系結構,各個部件的功能,設計規範,TPM內部所通訊的資料結構,TPM底層執行的命令規範。主要包括三個標準:TPM Main-Part 1 DesignPrinciples-即TPM的設計原則。 TPM Main Part 2 TPM Structures-即TPM程式設計中使用的資料結構. TPM Main Part 3 Commands-TPM命令說明。

Ø  軟體棧規範(TSSSpecifications)

TSS可以理解為方便可信應用使用TPM功能的軟體中介軟體,向上層應用提供一些標準APT介面,遮蔽底層TPM程式設計實現細節。該標準說明了軟體棧包括內容和作用,以及介面規範。其中從上到下包括:TCGService Provider (TSP),TCG Core Services (TCS),TCG Device Driver Library (TDDL),TCG DeviceDriver (TDD),以及每層模組的介面使用方式。相當於是一個可信應用的標準API。

Ø  基礎框架規範(InfrastructureSpecifications)

提高TCG相關技術的互操作性,側重於可信系統的開發、配置、互操作性方面。

Ø  個人計算機客戶端規範(PCClient Specifications)

具體對於PC,TPM的相關規範,主要說明了TPMInterface Specification (TIS)。如果使用PC做可信計算的開發,需要參照該文件。但是這僅是一個規範標準,具體還要參照TPM的生產商的規範和實現方式。

另外如果需要做可信的遠端驗證,則需要參考IWG(Infrastructure Work Group)標準:TCG TrustedNetwork Connect TNC Architecture for Interoperability。其標準文件系列如下圖所示。

2      TCG架構

注意,這裡的架構是平臺獨立的,可以用於PC,PDA,行動電話等。

1.1  可信平臺的基本特徵

TPM平臺基本的特色,包括三個方面:一個可信平臺要達到可信的目標,最基本的原則就是必須真實報告系統的狀態,同時決不暴露金鑰和儘量不表露自己的身份。TCG規定一個可信的平臺需要三個必要的基礎功能:保護能力(ProtectedCapabilities),完整性度量、儲存和報告(Integrity Measurement,Storage and Reporting),證明能力(Attestation Capabilities )

1.1.1   保護能力(Protected Capabilities):以可信的方式執行計算和安全的儲存資料

  保護能力是唯一被許可訪問保護區域(shieldedlocations)的一組命令。保護區域是能夠安全操作敏感資料的地方(比如記憶體,暫存器等)。

  TPM實現了保護能力和被保護區域,可以用來保護和報告完整性度量(稱作平臺配置暫存器:PCRs,這種暫存器位於TPM內部,僅僅用來裝載對模組的度量值,大小為160bits)。

  TPM保護能力還有許多的安全和管理功能,比如金鑰管理、隨機數生成、將系統狀態值封印(seal)到資料等。這些功能使得系統的狀態任何時候都處於可知,同時可以將系統的狀態與資料繫結起來。

1.1.2   證明能力(AttestationCapabilities ):確認資訊正確性的過程

  外部實體可以通過該功能驗證保護區,保護功能指令,和可信根。也可以驗證平臺完整性。通過證明,可以完成網路通訊中身份的認證,而且由於引入了PCR值,在身份認證的同時還鑑別了通訊物件的平臺環境配置。

  證明可以在不同層次進行:

  基於TPM(Attestation by the TPM)的證明是一個提供TPM資料的校驗操作,這是通過使用AIK對TPM內部某個PCR值的數字簽名來完成的,AIK是通過唯一祕密私鑰EK獲得的,可以唯一地確認身份;AIK由私有CA使用或者一個可信的驗證協議。

  針對平臺(Attestation to theplatform)的證明則是通過使用平臺相關的證書或這些證書的子集來提供證據,證明平臺可以被信任以作出完整性度量報告;

  基於平臺(Authentication of theplatform)的證明通過在TPM中使用AIK對涉及平臺環境狀態的PCR值進行數字簽名,提供平臺完整性度量的證據。

1.1.3   完整性度量、儲存和報告(IntegrityMeasurement, Storage and Reporting

  完整性的度量是一個過程,包括:獲得一個關於平臺的影響可信度的特徵值(metrics),儲存這些值,然後將這些值的摘要放入PCRs中。

  通過計算某個模組的摘要同期望值的比較,就可以維護這個模組的完整性。

  在TCG的體系中,所有模組(軟體和硬體)都被納入保護範圍內,假如有任何模組被惡意感染,它的摘要值必然會發生改變,使我們可以知道它出現了問題。

  另外,平臺BIOS及所有啟動和作業系統模組的摘要值都將存入特定的PCR,在進行網路通訊時,可以通過對通訊方PCRs值的校驗確定對方系統是否可信(即是否感染了病毒、是否有木馬、是否使用盜版軟體等)。靜態的可信根(SRTM)從一個已知狀態開始度量。動態可信根(DRTM)從一個不可信狀態度量度量到一個可信狀態的轉移過程。

  完整性報告則是用來證明完整性儲存的過程,展示保護區域中完整性度量值的儲存,依靠可信平臺的的鑑定能力證明儲存值的正確性。

  TPM本身並不知道什麼是正確的值,它只是忠實地計算並把結果報告出來。這個值是否正確還需要執行度量的程式本身通過度量儲存日誌(Stored Measurement Log,SML)來確定。

  此時的完整性報告使用AIK簽名,以鑑別PCR的值。