我最近一直在研究 TPM 2.0 技術,我試圖弄清楚在應用程式重新運行之后如何保留 keyhendle。我想我需要使用 TPM2_ContextSave這個函式來包裝和加密所有的 blob 和諸如此類的東西,這樣只有創建背景關系的 TPM 才能讀回它。因此,這應該是將“密鑰”存盤在檔案中的正確方法。
如果您以后需要使用此密鑰進行解密或簽名(PC 重新啟動、應用程式重新運行),TPM2_ContextLoad應該為您提供背景關系(如果您正在加載密鑰句柄,請處理)。這與我從 Trusted Computing Group
檔案中得到的一樣多。
TSS.MSR是一個帶有 .NET 變體的 API。我的問題在于Tpm2ContextSaveRequestand Tpm2ContextLoadRequest。
Tpm2ContextSaveRequest有一個建構式TpmHandle。所以這個結構應該可以寫入檔案并稍后讀取。
Tpm2ContextLoadRequest但是只有Context收縮器。
Context有一些其他建構式在呼叫其他建構式TpmHandle,ulong而此時我迷失了正在發生的事情。
如何通過重新運行應用程式來保持我的句柄?
uj5u.com熱心網友回復:
我已經找到了答案,所以如果有任何可憐的靈魂偶然發現了這個問題,那就是:
你不應該使用Tpm2ContextLoadRequest和 Save 等價物。如果您想使用背景關系作為媒介,請使用Tpm2方法ContextSave,ContextLoad但我還沒有找到如何存盤這些物件。
下一個注意事項是使用可以由 EvictControl 制作的持久密鑰。然后您要做的是匯出您的句柄 ID (uint memberVar)。重新運行應用程式并分配此 ID 應該為簽名、解密等提供有效參考...
我已經在此處實施了解決方案以獲取更多詳細資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/458742.html
