起因
常有人問TPM自我測試,到底做那些測試?
- 有沒有TPM自我測試的test function list?
- 英飛凌提供的測試工具,除了讀取TPM 自我測試外,還可以提供那些測試?
- 若客戶覺得測試太簡單,可否做較多的測試?
迷思.
會問這些問題,通常對TPM,以及系統架構,比較陌生,不清楚該如何做比較安心,所以提出比較簡單的問話。
TPM自我測試,是可信規範的部分,確保TPM在被系統使用時,是最基本可以被信賴的根元件。
當TPM整合至平台(PC/NB/Embedded system)與作業系統時,對整體系統的可信測試,是屬於系統測試範疇。
所以TPM自我測試,只是提供系統運作或測試時,確保在可信的狀態。
並非直覺上覺得,TPM自我測試,包含了整個系統的可信測試。
附註:"可信",是指操作平台,與操作人,確保為同一平台與使用者,不會是假冒的。
但直接回答,通常會繞一大圈,也沒得到想要的答案。然後不斷的重複詢問。
因為問題本身,不是遇到困難想要知道結果,而是出於對TPM的陌生。
以下我會先做澄清,以簡單圖文的方式介紹一些架構,避免冗長的介紹。
然後再針對問題,限縮範圍來回應,看是否可以讓你們客戶得到滿意答案?
澄清.
下圖是TPM的架構圖,在TCG定義TPM規範中,定義"自我測試",包括power on 時必須進行,以及架構中各項子件的檢查。
系統僅需知道TPM自我測試結果,是成功或失敗,進而使系統(例PC主機/Server)決定如何運行,達到信任鏈的延伸。
附註:"信任鏈",簡單的描述,例如收到郵件,可信的郵件,必須根源可信得傳送,而傳送過程,必須根源於可信平台的傳送。

以上圖例內容來自 <https://trustedcomputinggroup.org/resource/tcg-architecture-overview-version-1-4/>
就含有TPM的系統架構而言,測試種類大約區分如下圖右方的三個敘述。
最底層是TPM規範的測試,與上兩層生產和運用的測試,並沒有直接關係。
在中間層,是IC供應商提供,或是平台製造商設計,主要在確保該平台生產,該TPM device運作正常。
最上層的測試,通常是終端客戶(系統商)或作業系統供應商自行開發,主要是確保應用軟體使用到TPM時的準確無誤。
例如:應用Intel.TXT功能,會做TPM Provisioning,就須檢測是否完成配置。
若應用到通訊方面,通常會檢查TPM是1.2或是2.0版本,或是直接讀取憑證,檢查演算法是否為其需求的。
可參考範例,如微軟WHLK檢測有關於TPM的部分,涵蓋所有檢測階層,除了TPM自我檢測外。目的是確保driver/BIOS interfce(access TPM)/應用軟體bitlocker等,運作正確。

以上圖例內容來自 <https://trustedcomputinggroup.org/resource/tcg-architecture-overview-version-1-4/>
歸結.
1. 有沒有TPM自我測試的test function list?對系統商而言,此test function list最終可能不是他想知道結果。
重點應該是有沒有通過認證的需求,例如Common Criteria或是FIPS。(參考資料 4)
標案通常需要使用有過認證的TPM,歐洲需要Common Criteria,北美地區則會要求FIPS。
如澄清圖二,最底層TPM 自我測試,是根據 PC Client TPM Certification 規範(參考資料 5),test list會是測試內部RSA演算,雜湊演算,等功能的確認。
2. 英飛凌提供的測試工具,除了讀取TPM 自我測試外,還可以提供那些測試?
如澄清圖二,右側中間說明,旨在工廠生廠用。
當然可以帶入command 的方式,處理一般command 可檢測的項目。
參考第3條回覆。Command 用法請參考TPM 規範。(參考資料 1,2)
3. 若客戶覺得測試太簡單,可否做較多的測試?
可以先瀏覽TPM摘要(Trusted Platform Module (TPM) Summary)(參考資料 3),
思考其產品期望使用到那些功能,決定要測那些項目,然後設計自有的測試軟體或是command的批次整合,透過提供的測試工具去下command?
例如:檢測憑證日期?讀取EK並紀錄?
檢測TPM的演算法是否具備中國的加密演算SM4等?
產品製造時是否要預埋機密資料在TPM的NVM中?
參考資料.
1. TPM 1.2 Main Specification http://www.trustedcomputinggroup.org/resources/tpm_main_specification2. TPM 2.0 Library Specification http://www.trustedcomputinggroup.org/resources/tpm_library_specification
3. Trusted Platform Module (TPM) Summary https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/
4. TCG Certification Programs https://trustedcomputinggroup.org/membership/certification/
5. PC Client TPM Certification https://trustedcomputinggroup.org/resource/pc-client-tpm-certification/
6. TCG FIPS 140-2 Guidance for TPM 2.0 https://trustedcomputinggroup.org/wp-content/uploads/TCG_FIPS_140_Guidance_for_TPM2_0_v1r1_20170202.pdf
評論