TPM2_GetCapability TPM_HT_LOADED_SESSION 是想表达什么?

What TPM2_GetCapability TPM_HT_LOADED_SESSION is intended to show?

我试图通过 handles-loaded-session 的选项来理解 tpm2-tools/tpm2_getcap 的预期输出是什么,描述说:

handles-loaded-session: Display handles about both loaded HMAC and policy sessions.

我知道 tpm2-tools 会在可能的情况下执行 TPM2_ContextLoad -> 操作 -> TPM2_ContextSave。因此,tpm2_getcap handles-saved-session 将在 TPM 中显示保存的上下文,检查以下内容:

tpm2_startauthsession -S session.dat --policy-session
tpm2_policypcr -S session.dat -l "sha256:16"
tpm2_getcap handles-saved-session
    > 0x2000000
tpm2_flushcontext session.dat
tpm2_getcap handles-saved-session
    > nil

然而,tpm2_getcap handles-loaded-session总是returns什么都没有。所以我的问题是在什么情况下 tpm2_getcap handles-loaded-session 会显示任何输出?

确实如此。如果 TPM2.0 会话处于活动状态,已加载到 TPM 中并正在使用中,那么您将在 TPM_HT_LOADED_SESSION.

列表中看到它

因为“tss2-software”堆栈默认将上下文存储在 TPM 之外的文件中,所以您不会看到该会话已加载。

您只会在已保存的情况下找到它,就像您在示例中那样向 TPM2_GetCapability 询问 TPM_HT_SAVED_SESSION 时。

这是否回答了您的问题?

ps:通常,当您有多个用户或应用程序使用 TPM 时,需要保存上下文。所以,我很好奇,您想使用上下文保存或观察加载的会话是否有特殊原因?