【问题标题】:How to interface with PKCS#11 compliant HSM device in PHP如何在 PHP 中与 PKCS#11 兼容的 HSM 设备交互
【发布时间】:2011-03-14 23:06:42
【问题描述】:

如何在 Linux 服务器上运行的 PHP 应用程序中使用符合 PKCS#11 的 HSM(例如 SafeNet iKey 2032 [USB] 或 Aladdin eToken PRO [USB])中的密钥材料?

【问题讨论】:

    标签: php linux usb pkcs#11 hsm


    【解决方案1】:

    我假设您询问的是用户使用他们的令牌来生成签名。签名是在客户端生成的,即在浏览器中。您的解决方案在 linux/php 上这一事实并不重要。

    您必须添加一个称为签名者的软件组件,它将读取证书并生成签名。

    现有的开源签名者是用 java 编写的,原因是 java applet 仍然是最可用的客户端技术。

    【讨论】:

    • 不,是在服务器上签署 PDF 文档,客户端应用程序不工作。
    【解决方案2】:

    我没有看到,粗略的搜索也没有找到,用于 PHP 的 PCKS#11 胶水库。可能不是您要找的答案。 (:如果你比我有更好的搜索功能,请更新此线程。

    我认为您最好的选择是编写一个调用 PKCS#11 并访问 HSM 的 C 程序,然后从您的 PHP 应用程序中将其作为外部二进制文件调用。即使出现了针对 PHP 的 PKCS#11 包装器,这种方法也会为您提供可用于 C 代码的完整 API,而不必使用包装器的作者来满足他们自己的要求所需的任何东西。 PKCS#11 是一个大型 API,包装器的实现通常不完整。

    【讨论】:

      【解决方案3】:

      您需要查看来自 OpenSC 项目的 pkcs11-helper。如果您尝试直接从 PHP 访问 PKCS#11 模块,这将是一个困难的方法。

      【讨论】:

      • 请验证您的连接。我重新检查了链接。没关系。
      • 我认为服务器关闭了一段时间,然后我打开了几次页面但它没有工作但现在它可以了:) 谢谢
      • 链接又失效了。这是github页面:github.com/OpenSC/pkcs11-helper
      【解决方案4】:

      您应该使用 php-pkcs11,它允许将您的私钥保存到基于 Oasis 组织的 PKCS11 标准的 HSM(硬件库)中。见:https://github.com/gamringer/php-pkcs11

      您的 HSM 可以是 U 盘、TPM 或智能卡。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-09
        相关资源
        最近更新 更多