HSM(硬件安全模块)如何工作?

JDP*_*JDP 1 hsm

我是 HSM 的新手。我想在我的产品之一中使用 HSM 来存储密钥数据库。我有以下问题:

1) 是否所有 HSM 都支持 HTTPS(SSL)?
2)我们在 HSM 上有用户空间可以运行我们自己的程序吗?
3) 任何通过 HTPPS 访问 HSM 的标准 API?

注意:用户可以拥有来自任何服务提供商的任何 HSM。

rip*_*... 5

它在很大程度上依赖于供应商。

您假设 HSM 具有 Linux 或类似桌面的内核和 GUI。没有。HSM 可能是运行自行部署(专有)操作系统的嵌入式系统。

Utimaco 'CryptoServer' 系列不支持 HTTPS 或 SSL,但这是对错误问题的回答。该软件(称为 SecurityServer)是否在 HSM 上运行的主机应用程序和固件之间实现安全连接?是的。但它不是通过 HTTPS(截至 4.20)并且不使用 TLS。加密连接是在您的应用程序和 HSM 上的固件之间,而不是 HSM 所插入的操作系统之间。即,不存在“中间人”。

HSM 是否提供“用户空间”?不,因为 CryptoServer 上的操作系统是嵌入式操作系统,它没有用户的概念(由 Linux 或其他桌面操作系统定义)。如果您编写自定义代码(CryptoServers 支持 C 和 Lua 中的自定义代码),C 模块在内核空间中运行,Lua 模块在 Lua 沙箱中运行。

SecurityServer 支持 CXI(Utimaco 专有)、Java_CXI、JCE、PKCS#11、CSP、CNG、EKM。但不是 RESTful,而 HTTPS 连接就是 RESTful。

所以:询问供应商。

(注:是的,我为 Utimaco 工作)。


vlp*_*vlp 5

(给出一个更中立的供应商答案)

1a) 是否所有 HSM 都支持保护 HTTPS(SSL)?

  • 我想大多数支持 RSA 加密的 HSM 都可用于 HTTPS/SSL/TLS 加速

  • 请注意,HSM 通常仅用于初始密钥交换(例如 RSA),而连续加密(例如 AES)由应用程序完成

1b) 是否所有 HSM 都支持 HTTPS(SSL) 作为应用程序和 HSM 硬件之间的通信通道?

  • 据我所知,只有泰雷兹支持 SSL/TLS 端到端连接到 HSM 固件

  • 其他供应商使用他们自己的专有协议来保护应用程序和 HSM 固件之间的通信

2)我们在 HSM 上有用户空间可以运行我们自己的程序吗?

  • 某些 HSM 模型允许在 HSM 硬件中运行自定义代码 - 请参阅此答案

  • 请注意,在 HSM 硬件中运行自定义代码可能会破坏安全认证

3) 任何通过 HTTPS 访问 HSM 的标准 API?

  • 访问 HSM 的“黄金标准”API 是PKCS#11

  • 替代 API 是 Java 的 JCA/JCE、微软的 CryptoAPI/CNF

  • 一些供应商提供上述 API 的替代 API 或专有扩展

  • 我不知道任何通过 HTTPS 访问 HSM 的标准化 API


免责声明:我已经有一段时间没有处理这个问题了,所以请验证我的想法......

祝你好运!