安全開機與量測開機的差異:簽章驗證、TPM 記錄、遠端證明比較
兩者都是在通電到作業系統開始運作的各個開機階段,確認下一個要執行之軟體的機制。安全開機會驗證下一個軟體的數位簽章,若簽章不正確就停止開機。量測開機會計算下一個軟體的雜湊值,並逐次累積記錄到 TPM 的 PCR(平台組態暫存器),但不會停止開機本身。阻止的是安全開機,事後確認並證明的是量測開機;兩者並不互相對立,經常搭配使用。
| 項目 | 安全開機 | 量測開機 |
|---|---|---|
| 確認的對象 | 下一個要執行之軟體的數位簽章。確認開發商對映像檔雜湊值所做的簽章,能否以可信賴的金鑰驗證 | 下一個要執行之軟體的雜湊值(量測值)。將實際載入之內容的值原樣記錄下來 |
| 發現問題時的行為 | 驗證失敗就當場停止開機(強制的機制) | 不停止開機而繼續,只留下記錄(記錄的機制) |
| 信任根 | 無法改寫的 ROM 開機程式碼,以及用於驗證簽章的公開金鑰(為節省容量,常將其雜湊值放在 eFuse 中) | 開機時最先執行、開始量測的可信賴小段程式碼,以及保存記錄的 TPM |
| 軟體遭竄改時 | 簽章不符,因此不會執行。遭改寫的開機載入程式或核心無法啟動 | 照常啟動,但 PCR 的值會與預期值不同,因此確認記錄即可在事後分辨 |
| 所需的元件 | 放在裝置中的驗證用公開金鑰,以及由開發商嚴密保管的簽章用私密金鑰。並搭配防回滾保護,避免被換回舊版 | TPM 的 PCR(只能以雜湊納入新量測值的「擴充」方式更新),以及各階段量測的記錄(事件日誌) |
| 結果的用途 | 在該裝置內阻止不正當軟體的啟動。若要向外部出示啟動了什麼,需搭配量測開機等機制 | 遠端證明(以 TPM 的金鑰簽署 PCR 的值,出示給伺服器)與封存(sealing,只有 PCR 為預期值時,才能取出磁碟加密金鑰等) |
| 限制 | 只能知道「是否由可信賴的金鑰簽署」,因此無法分辨簽章正確但有漏洞的舊版,或設定的變更。保護的只有開機路徑 | 無法阻止不正當程式碼本身的執行,記錄要有人確認才有意義。更新軟體後 PCR 的預期值也會改變,需要管理正確的值 |
| 主要用法 | 智慧型手機、個人電腦與許多嵌入式裝置。出貨產品還會搭配鎖定 JTAG 等除錯埠 | 在具備 TPM 的個人電腦等上,用於磁碟加密與連上網路前的健康狀態確認。沒有 TPM 的微控制器,則以 DICE 這類由量測值導出金鑰的機制達成相同目的 |
數值為具代表性的大致參考值,會因世代或產品而異。