【问题标题】:How to use CKO_VENDOR_DEFINED in pkcs#11如何在 pkcs#11 中使用 CKO_VENDOR_DEFINED
【发布时间】:2017-04-04 03:51:04
【问题描述】:

有没有人使用 CKO_VENDOR_DEFINED 创建密钥或数据对象?

几乎没有任何文档(包括来自 Oasis 的母亲负载)关于如何做到这一点,或者哪些属性适用/不适用。

很遗憾,但希望可以理解,我无法准确描述我想要做什么。

但它的要点是,我需要能够为我们的密钥类型提供更多的属性机制灵活性以及修改令牌上的密钥的能力。

非常感谢任何指点或帮助。

【问题讨论】:

    标签: pkcs#11


    【解决方案1】:

    你可以看看OpenPGP extension to PKCS #11,其中CKC_OPENPGP定义为:

    #define CKC_OPENPGP  (CKC_VENDOR_DEFINED|0x00504750)
    

    我还看到了以这种方式引入 CK*_VENDOR_DEFINED 扩展的商业实现。

    【讨论】:

      【解决方案2】:

      (AFAIK)供应商定义的对象类型必须在 HSM 单元固件内实现(理论上,主机端 cryptoki 库可以引入一些额外的“虚拟”对象类型,但这可能没有任何意义,因为整体安全性模型将保持不变——因为主机端 cryptoki 代码在不受信任的执行环境中运行)。

      如果您需要比普通 PKCS#11 提供的更多控制,您有一些选择:

      1. 使用现有的供应商扩展 -- 一些供应商添加自己的扩展来解决常见用例。阅读您的文档或直接联系您的供应商。

      2. 实施自定义固件 -- 一些产品允许最终用户在 HSM 设备内部运行自定义代码。您可以通过这种方式实现您的模型。

      SafeNet ProtectServer:

      SafeNet ProtectServer HSM 为 应用程序开发人员创建自己的固件并执行它 在 HSM 的安全范围内。被称为功能模块, 工具包提供了一个全面的工具来开发和部署 自定义固件。

      泰雷兹 nShield:

      大多数 nShield HSM 还支持托管关键 强化安全边界内的应用程序,因此您可以 除了建立防篡改业务流程之外 保护加密操作。

      Utimaco 加密服务器:

      CryptoServer 软件开发工具包 (SDK) 是专业的 所有 Utimaco 硬件安全模块的开发环境。它 使集成商和最终用户能够创建特定的应用程序, 例如专有算法、自定义密钥派生程序或 在防篡改环境中运行的复杂协议 CryptoServer 硬件安全模块。由于 SDK 提供完全访问权限 对于 Utimaco 基础固件,可以开发自定义固件模块 在很短的时间内。

      1. 使用其他一些技术 -- 根本不使用 HSM 并利用其他一些安全设备。具体来说,智能卡可能是一个可行的替代方案,因为其中一些是可以编程的(至少是Java CardMULTOS 的)。另一方面,此处支持的算法的性能和范围非常有限(取决于您的用例)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多