什麼是DICE(裝置識別碼組合引擎)

由TCG(Trusted Computing Group)制定,以單向函數從裝置特有的機密與各層啟動韌體的量測值,導出各層機密與金鑰的機制。各層在產生下一層的機密之後,先讓自己的機密無法被讀取,再交出控制權。韌體改變時導出的金鑰也會改變,因此遭竄改的韌體無法使用正確的金鑰。即使是沒有TPM的小型微控制器,也能實現裝置識別與證明。

日文名稱: DICE(Device Identifier Composition Engine)

「DICE(裝置識別碼組合引擎)」出現在1領域的1道練習題中(硬體安全的進階主題與趨勢等)。

這個名詞所屬的領域: 硬體安全的進階主題與趨勢

逐層導出機密

製造時以熔絲或PUF等為每台裝置準備不同的機密(UDS:Unique Device Secret)。開機後,最先執行的小型硬體或ROM程式碼,以單向函數由UDS與下一個執行之韌體的雜湊值產生稱為CDI(Compound Device Identifier)的機密,並讓UDS無法被讀取後再交出控制權。下一層也同樣由自己的CDI與再下一層的量測值產生下一個CDI,並清除自己的CDI後才繼續。如此,各層的機密都與到該層為止所啟動之全部韌體的內容綁定。

金鑰與憑證

各層都能由自己的CDI確定性地產生簽章用的金鑰對。由第一層產生的裝置識別金鑰(DeviceID),只要該韌體不變就不會改變,因此製造商可在生產時為它簽發憑證。更上層的金鑰(Alias金鑰等),則由下一層簽發包含量測值的憑證,藉由憑證鏈向外部顯示「哪一台裝置以哪個韌體運作」。這就是以DICE進行證明的基礎。

優點與注意事項

所需的硬體只有保護UDS的機制,以及計算單向函數的小型電路或ROM程式碼,因此容易放進廉價的微控制器。即使後面的層有漏洞而被奪取,前面各層的CDI與UDS都已清除,不會洩漏。另一方面,更新韌體時導出的金鑰會改變,因此必須事先設計更新後簽發新憑證等程序。

練習DICE(裝置識別碼組合引擎)的題目

關於TCG所制定的DICE(Device Identifier Composition Engine)的機制,正確的是下列何者?

  1. A在所有設備中放入相同的機密值,即使韌體更新而改變,也一直使用與製造時相同的金鑰
  2. B每次開機都透過網路從伺服器下載新的金鑰來使用,讓設備內部完全不持有任何機密值
  3. C由設備特有的機密與下一層韌體的量測值導出該層的機密,各層在往下一層前先讓自己的機密無法被讀取
查看答案與解析

正確答案:C. 由設備特有的機密與下一層韌體的量測值導出該層的機密,各層在往下一層前先讓自己的機密無法被讀取

在DICE中,開機後最先執行的小型硬體或ROM程式碼,以單向函數由設備特有的機密(UDS)與最先執行之韌體的雜湊值,產生稱為CDI的機密。該韌體再使用下一層的量測值產生下一層的CDI,並清除自己的CDI後才交出控制權。韌體被改寫時導出的機密也會改變,因此遭竄改的韌體無法冒用正確的金鑰,即使後面的層被奪取,前面各層的機密也不會洩漏。即使是沒有TPM的小型微控制器,也能以少量的硬體實現設備識別與證明。

常見問題

DICE與TPM有何不同?

TPM是負責保管金鑰、記錄量測值與簽章等的獨立元件(或其功能),需要較多電路。DICE則是規定由量測值導出金鑰之程序的機制,只需極小的硬體即可實現,量測結果不是被記錄下來,而是直接反映在金鑰本身。兩者目的相近,但保護方式與所需規模不同。

更新韌體後金鑰會改變,不會造成困擾嗎?

改變本身就是安全上的優點,舊韌體的金鑰在更新後便無法再使用。實際設計中,裝置識別金鑰由不會改變的層產生,會改變之層的金鑰則在每次更新時簽發新憑證,依層別分開處理。

解析中的「DICE(裝置識別碼組合引擎)」

出現「DICE(裝置識別碼組合引擎)」的題目(1題)

  1. 關於TCG所制定的DICE(Device Identifier Composition Engine)的機制,正確的是下列何者?

相關名詞

TPM(可信賴平台模組) 微控制器(MCU) 目標列刷新(TRR) 指標驗證(PAC) 控制流程完整性 硬體物料清單(HBOM) 雷射故障注入 影子堆疊 數論轉換 暫態執行攻擊

前往名詞解釋列表