我使用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外部生成的任何密钥/密钥对在现实世界中不被视为不安全的操作.