1

TCG 为与 TPM 通信的中间件的开发人员提供了两种不同的命令/接口规范。一方面有 TPM 命令参考,如

http://www.trustedcomputinggroup.org/files/static_page_files/72C33D71-1A4B-B294-D02C7DF86630BE7C/TPM%20Main-Part%203%20Commands_v1.2_rev116_01032011.pdf

另一方面,如中所述的 TSS

http://www.trustedcomputinggroup.org/files/resource_files/6479CD77-1D09-3519-AD89EAD1BC8C97F0/TSS_1_2_Errata_A-final.pdf

后一种处理不同层(TDDL、TCS、TSP)的不同接口规范,而前一种描述应该建立在设备驱动程序上的功能。

例如,将 TSS TDDL 接口与 TPM 命令参考中指定的命令进行比较:

TSS TDDLI:

  • Tddli_Open()

  • Tddli_Close()

  • Tddli_Cancel()

  • Tddli_GetCapability()

  • Tddli_SetCapability()

  • Tddli_GetStatus()

  • Tddli_TransmitData()

TPM 命令参考:

  • TPM_Init()

  • TPM_TakeOwnership()

  • TPM_GetCapability()

  • TPM_MigrateKey()

  • ...

Trousers 例如实现了完整的 TSS,而 libtpm 等其他库仅实现了 TPM 命令参考的一些功能。

这两个接口规范有什么关系?

4

1 回答 1

1

TPM 命令TPM 结构文档仅指定 TPM 必须执行的操作。

  • TPM 上实现了哪些命令
  • 输入看起来如何
  • 如何对发送给 TPM 的命令进行身份验证
  • TPM 如何对此类输入做出反应
  • 响应如何

另一方面,TSS 为应用程序开发人员提供了一个 API,以方便地开发启用信任的应用程序TSS 的某些部分甚至不向 TPM 发出命令,例如密钥存储部分或用户管理。

在您链接的 TSS 文档中,您可以看到第 30 页的图 1-1 中的堆栈的结构化视图。TPM 命令参考指定了TSS 设备驱动程序库TPM之间的细线的外观。另一方面,TSS 规范指定了Tddli 接口TCS 接口TSP 接口的外观。

如果你喜欢类比,让我们将其与 HTTP 进行比较:前者类似于 HTTP 规范,而 TSS 更像是 HTTP 客户端库的 API 文档。应用程序开发人员通常不会打开套接字并开始GET / HTTP/1.0 ...通过线路发送。她改用图书馆并专注于更高层次的抽象。同样,您通常不会逐位组装 TPM 命令,而是使用 TSS。

于 2016-01-13T22:58:29.450 回答