4

我想在 Windows 中执行 TPM Seal 操作。我熟悉 C++ 编程,但不知道我什至会使用哪些库。

我目前遇到以下两个问题:

我可以使用例如 WMI 和 powershell 脚本执行此操作吗?这个http://msdn.microsoft.com/en-us/library/windows/desktop/aa446799(v=vs.85).aspx表明我可以使用 TBS 提交命令,但我没有最微弱的我将如何在例如 WMI 中设置参数。

我可以使用 Windows 7 SDK 中的 tbs.h/tbs.lib 来执行 TPM_Seal 操作吗?

是否有像http://trousers.sourceforge.net/这样的 TSS API ,我可以从一些 C++ 代码中调用它?

我这样做的方法不是什么大问题,但我在 Windows 上使用 TPM 1.2,而且我所有的客户端都是 Windows。

4

2 回答 2

3

您可以使用TPM 基本服务向 TPM 发送命令。所以你需要自己组装命令。

TPM 命令、结构和流程在3 个文档中定义:

首先,您需要确定要发送的命令。然后您必须在第 3 部分中查找命令的引用,并按照第 2 部分中的说明组装所需的结构。

例如,该TPM_seal命令在第 3 部分第 72 页的第 10.1 节中定义。第 1331 行向您展示了该命令的外观。发出命令后,您可以根据第 1332 行评估返回的结构。(所有数字适用于修订版 116。)

这可能真的很棘手。但是,您可以查看其他实现。如果您只需要一些命令,这并不难,尤其是当您可以确定某些极端情况不会发生时。

我建议您开始研究IBM 的软件 TPM。这个项目还提供了libtpm 和一些实用程序。这是我知道的较轻的实现之一。

您还可以尝试Windows 版 TrouSerS是否足够稳定以满足您的需求。在那里,您将拥有一个高级 TSS API。

如果 Java 是一个选项,请查看jTSS。它支持 Windows。

于 2014-06-11T09:59:21.420 回答
0

我能够在没有太多 JTSS 问题的情况下做到这一点。有一个例子@https ://security.stackexchange.com/questions/60841/encrypting-a-symmetric-key-or-small-file-using-tpm-and-windows-tbs

于 2014-06-18T21:17:13.907 回答