2016-03-01 55 views
1

使用了CKO_VENDOR_DEFINED任何人都可以创建一个键或数据对象?如何使用CKO_VENDOR_DEFINED在PKCS#11

几乎没有如何做的文档(包括绿洲母亲负载),或哪些属性适用/不适用的。

遗憾,但希望理解,我无法描述正是我试图做的。

但它的要点是我需要能够有更多的属性< =>机制的灵活性与我们的键和修改令牌上的密钥的能力。

我真的很感激任何指针或帮助。

回答

0

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

#define CKC_OPENPGP (CKC_VENDOR_DEFINED|0x00504750) 

我见过也商业实现引入CK * _VENDOR_DEFINED扩展这种方式。

0

(据我所知)供应商定义的对象类型必须与HSM设备固件内部实现(理论上,主机端cryptoki库可能会引入一些额外的“虚拟”对象类型,但是这可能是没有任何意义的总体安全模型将保持不变 - 因为主机端cryptoki代码运行在不受信任的执行环境中)。

如果你需要比由香草PKCS#11提供了更多的控制,你有一些选择:

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

  2. 实现自定义固件 - 有些产品允许最终用户运行里面的HSM设备的自定义代码。你可以用这种方式实现你的模型。

的SafeNet ProtectServer:

的SafeNet ProtectServer HSM产品提供的灵活性 应用开发独特的水平来创建自己的固件和HSM的安全范围内执行它 。被称为功能模块, 工具包提供全面的设施,以开发和部署 自制固件。

泰勒斯nShield:

大多数nShield的HSM还支持硬化安全边界内的主机关键 应用程序,让您可以 建立除了防篡改的业务流程,以 保护密码的独特能力操作。

Utimaco公司CryptoServer:

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

  • 使用一些其他的技术 - 在所有不使用的HSM,并利用一些其他的安全设备。特别是智能卡可能是一个可行的替代方案,因为其中一些可以编程(至少Java CardMULTOS)。另一方面,支持的算法的性能和范围在此非常有限(取决于您的使用情况)。