使用Thales nShield HSM的PKCS11interop c#wrapper库导出/导入RSA密钥对?

我使用PKCS11Interop生成密钥API在HSM中生成了RSA公私密钥对.

我想导出密钥对.我使用Findobject API获取密钥,API重新启动ObjectHandle,使用GetAttributeValue API读取属性时,我无法读取密钥的值.

当我将键的属性设置为CKA_EXTRACTABLE为true时,我无法完全生成密钥.

另外,我需要在HSM中导入外部提供的密钥对.

任何帮助都非常感谢.

最佳答案 您正在尝试做的事情在HSM世界中被认为是不安全的.它违背了拥有HSM的目的.

但是,它可以做到吗?是.如果HSM供应商应该支持它.

HSM供应商决定是否可以提取HSM上生成的密钥,或者是否可以将任何软件(HSM外部)生成的密钥导入硬件. PKCS#11只是您与HSM交互的界面.如果HSM不支持某个操作,它会抛出一个异常,最终由PKCS11 api抛出.

这就是您的提取和导入操作的情况.您尝试执行这些操作的HSM可能不支持它.因此,您需要咨询HSM供应商,了解如何在其产品上执行这些操作.

P.S:Thales nShield应该/可能有一个配置文件,您可以通过该文件以不安全模式运行HSM.

注意:提取在HSM上生成的密钥/密钥对(或)导入在HSM外部生成的任何密钥/密钥对在现实世界中不被视为不安全的操作.

点赞