TriCore HSM 一般通信



我是HSM的新手,我没有找到任何关于细节沟通的信息。HSM 和主机应用程序之间的通信如何工作?我知道有一些驱动程序,但我想了解密钥解密和加密的部分。应用程序如何加密消息?它如何知道特定的密钥?

感谢您的支持。

干杯 地垒

...我没有找到任何关于细节沟通的信息。

难怪:至少在 3 年前,当我使用 HSM 时,HSM 文档是机密或严格机密的,并非每个客户都可以访问所有文档。

HSM 和主机应用程序之间的通信如何工作?

我不能谈论我从这里的机密文件中得到的信息。

但是,即使在阅读 27x CPU 的用户手册时,很明显共享 RAM 用于 HSM 和主机 CPU 之间的通信。

我知道有一些司机...

HSM "简单地"是与主机 CPU 位于同一芯片上的第二个 CPU。它有自己的 RAM 和(如果 HSM 处于活动状态(闪存中主 CPU 无法访问的区域。

"驱动程序"不仅是驱动程序,而且是在第二个CPU上运行的完整代码。

您可以将该"驱动程序"替换为执行其他计算(例如 2D 图形(的软件,而不是加密和安全性。在这种情况下,HSM 将执行 2D 图形计算而不是数据加密!

您可能会问为什么不在主 CPU 上完成加密计算。答案很简单:

主 CPU 无法访问闪存或 HSM 的 RAM。

如果主 CPU 被黑客入侵,黑客可以读出主 CPU 的 RAM 和闪存,但无法访问存储在 HSM 的 RAM 或闪存中的秘密数据(例如密钥(。

应用程序如何加密消息?
它如何知道特定的密钥?

当然,这取决于在 HSM 上运行的软件("驱动程序"(。

通常,要加密的密钥和数据由主CPU写入共享RAM。

在 HSM("驱动程序"(上运行的应用程序将从那里读取数据。

通常,此类应用程序提供将密钥存储到 HSM 闪存(主 CPU 无法访问(中并使用这些密钥进行加密的功能。

结果(例如加密消息(将被放回共享 RAM 中,主机 CPU 可以在其中读取数据。

将有一个低级协议,当 HSM 处于设备外形规格时,它将类似于 */IP(TCP 或 UDP(,或者当它是 PCIe 卡时为 PCIe 驱动程序,当它是 USB 外形规格时,它将是 USB 驱动程序。

在此之上是HSM自己的通信协议。 这是"通信"协议,而不是加密系统。

在通信协议之上,将是一个加密系统。 基于标准的加密系统类似于PKCS#11或CAPI/CSP/CNG或JCE。 HSM可能也有自己的原生加密系统,在大多数情况下,基于标准的加密系统只是通往专有系统的桥梁。

因此,HSM 如何准备密钥以供使用,以及应用程序如何使用密钥完全取决于 HSM 和应用程序。

通常,您的应用程序将:

  1. 登录(如果您的 HSM 会话 双控制(或"4 只眼睛"(感知(。
  2. 查找、打开或准备要使用的密钥(不同的 HSM 使用不同的习语(。 此"密钥"可以是加密("包装"(blob,也可能是密钥句柄。
  3. 向 HSM 提供密钥、数据和标志以及请求。签名/验证/加密/解密/包装/解包/哈希/...

HSM 将

  1. 接受密钥、数据、标志和操作请求,使用 或 对输入执行操作,然后丢弃密钥和输入数据。
  2. 返回操作的结果。

您可以使用基于软件的HSM模拟器(SoftHSM,Utimaco GmbH的CryptoServer Simulator(来研究如何在本地环境中使用它们。

最新更新