使用 TBS
TPM 基本服务功能分为四个功能区域:
为了确保不同的实体无法访问彼此的资源,提交到 TBS 的每个命令都与特定实体相关联。 这是通过为实体创建一个或多个上下文来实现的,这些上下文随后与该实体提交的每个后续命令相关联。 每个命令都包含一个上下文对象,该对象允许 TBS 在适当的上下文下执行 TPM 命令。 关闭上下文时,命令创建的所有对象都会从 TPM 刷新。
实体在首次访问 TBS 之前创建上下文,并维护上下文,直到完成执行 TBS 访问。 例如,对于 TSS,TCG 核心服务 (TSS) 功能会在启动时创建 TBS 上下文,并在该上下文关闭之前保持活动状态。
对于 Windows Server 2008 和 Windows Vista,TBS 将 TBS API 的访问权限限制为 Administrators、NT AUTHORITY\LocalService 和 NT AUTHORITY\NetworkService 帐户。 默认情况下,这些帐户是唯一可以连接到 TBS 并创建上下文的帐户。 可以通过创建包含字符串的 注册表项 Access 来修改访问限制, (REG_SZ ) 注册表值名称 SecurityDescriptor
-
数据类型
- REG_SZ
HKEY_LOCAL_MACHINE
Software
Microsoft
TPM
Access
SecurityDescriptor = SecurityDescriptor
示例:
O:BAG:BAD: (A;;0x00000001;;;BA) (A;;0x00000001;;;NS) (A;;0x00000001;;;LS)
默认情况下,TBS 支持的最大上下文数为 25。 可以通过在 HKEY_LOCAL_MACHINE\Software\Microsoft\Tpm 下创建或修改名为 MaxContexts 的DWORD 注册表值来更改此数字。 通过使用性能监视器工具来跟踪 TBS 上下文的数量,可以观察实时 TBS 上下文使用情况。
对于 Windows 8、Windows Server 2012 及更高版本,TBS 允许标准用户和管理员访问。 SecurityDescriptor 和 MaxContexts 注册表项已过时。 对于Windows 8、Windows Server 2012 及更高版本,TBS 使用命令阻止来限制对某些命令的访问。
对于 Windows 10版本 1607,TBS 允许从 AppContainer 应用程序进行访问。 对于每个 TPM 版本,已分别将 BlockedAppContainerCommands 和 AllowedW8AppContainerCommands 与阻止和允许的 TPM 命令的匹配列表一起添加。
对于Windows 10版本 1803,不再支持 AllowedW8AppContainerCommands 下的注册表项。