在Windows中使用TPM密封数据

我想在Windows中执行TPM密封操作。 我熟悉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操作吗?

是否有一个TSS API像http://trousers.sourceforge.net/在哪里我可以从一些C ++代码调用这个?

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

Solutions Collecting From Web of "在Windows中使用TPM密封数据"

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

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

  • 第1部分 – 设计原则
  • 第2部分 – TPM的结构
  • 第3部分 – 命令

首先你需要弄清楚你想发送哪个命令。 然后你必须在第3部分中查找命令的参考,并按照第2部分的描述组装所需的结构。

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

这可能非常棘手。 但是,你可以看看其他的实现。 如果你只需要一些命令,那就不是那么难,特别是当你能确定一些角落不会发生的时候。

我建议你开始看IBM的软件TPM 。 该项目还提供libtpm和一些实用程序 。 这是我知道的更轻的实现之一。

您还可以尝试TrouSerS for Windows是否足够稳定以适应您的需求。 你将有一个高级的TSS API。

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