问题标签 [nshield]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 使用带有 MSCAPI 的 ncipher CSP 进行 AES 加密
我试图弄清楚如何使用 MCSAPI 与 ncipher 加密服务提供商 (CSP) 进行 AES 加密。令我困惑的是AesCryptoServiceProvider
构造函数不接受一个CspParameters
类,用于将 nCipher 指定为 csp。
据我所知,Rijndael 类也没有办法指定其他第三方 CSP。我错过了什么?有没有办法初始化我的整个系统以为所有后续加密调用加载 CSP?我是否想使用 CSP 来管理对称密钥,然后使用默认值AesCryptoServiceProvider
来加密/解密? RSACryptoServiceProvider(CspParameters)
工作得很好。但我想做对称加密。我需要在 C# .NET 框架中执行此操作。
rsa - 如何在 HSM 中包装 Microsoft RSA 密钥 blob
我需要将 RSAPrivateKey 包装在 HSM 中,以便可以将其发送到 Microsoft CA 进行密钥存档,但我不确定要采取什么方法。
问题是 Microsoft RSA 密钥格式是专有的,似乎不受 pkcs11 或我公司使用的 nCipher HSM 的支持。
http://msdn.microsoft.com/en-us/library/cc250013.aspx
如果这只是一个 RSAPrivateKey,则可以直接在 HSM 中生成密钥对,在 HSM 中加载包装密钥,包装 RSAPrivateKey 并提取包装的密钥字节。显然,由于不支持这种密钥 blob 格式,我需要采取不同的方法。
我的第一个想法是扩展 RSAPrivateKey 并覆盖 getEncoded() 方法以返回此专有密钥格式。我正在使用 IAIK pkcs11 包装器,它为 Java 中的 pkcs11 提供高级 API,并且支持创建供应商定义的密钥类型。但是,供应商定义的密钥接口似乎只是为了方便扩展客户端代码中的内置密钥类型而存在,实际上并不允许修改 HSM 中的密钥编码。
第二个想法是使用 pkcs11 数据对象并将其简单地视为密钥 blob,然后使用包装密钥对其进行加密。这里同样的问题是,为了将私钥字节复制到数据对象中,似乎我需要将私钥字节提取到应用程序代码中,然后从那里创建数据对象,这违背了拥有的全部意义HSM 中的密钥。
我正在寻找这些方法的替代品,或者我忽略了 pkcs11 中的某些功能可以让我这样做?任何见解将不胜感激。
java - 让 java IAIK PKCS11 包装器为 nfast 工作
我正在尝试让 IAIK PKCS11 包装器与 nfast 一起使用。
它总是期待 pkcs11wrapper 库文件并引发错误 -
java.lang.UnsatisfiedLinkError: pkcs11wrapper(在 java.library.path 中找不到)
如何让它使用/opt/nfast/toolkits/pkcs11/libcknfast.so
HSM 提供的库文件 ( )?
任何帮助都非常感谢和忘记!
c# - .Net Crypto Service Provider 错误使用 nShield HSM
我正在尝试使用 Thales 的 nShield 在其上生成一对非对称密钥。我在 msdn 上找到了以下示例:
我可以使用 KeySafe 在 HSM 上成功连接并生成密钥对。上面的代码抛出以下异常:
我感觉我没有在 CspParameters 构造函数中设置正确的第二个参数。这就是它在示例中所说的:
我在那里看不到任何 nCipher 或 nShield 或 Thales 或类似的东西。
编辑:
工作测试:
java - nCipher 在 java 中使用 KeySafe 生成 AES 密钥
我们有一个由 nCipher 提供的KeySafe Utility生成的AES 密钥。我们如何使用这个密钥来加密数据?我们可以从 KeySafe 生成的密钥创建一个 KeyStore 吗?
我通过创建空白密钥库并从 java 代码创建新密钥并保存在密钥库中找到了示例,但在 KeySafe 上找不到任何内容。从 java 代码生成新的 Key 对我们来说是不可行的。
java - nShield Connect 的 Java 代码
我正在寻找使用 PKCS11 库连接 nShield Connect HSM 的示例 java 代码。RSA 密钥是在令牌插槽 1 和软令牌插槽 2 上创建的。导入的证书在插槽 1 上。我喜欢连接到 HSM,读取插槽 1 并找到证书并签署 XML 文档。
c# - Pkcs11Interop Cryptoki 应用程序(已注册为多个 HSM 的 HSM 客户端)是否会检测并向活动 HSM 发送请求
我们在应用程序中使用Pkcs11Interop API使用存储在Thales nShield HSM中的私钥对摘要进行签名。
为了满足DR 场景,我们的数字签名应用程序托管服务器注册为主要 Thales nShield HSM 和 DR(次要)Thales nShield HSM 的 HSM 客户端。此处,两个 Thales nShield HSM 的 IP 地址不同,这是基于安装的安全世界软件将在创建 HSM 连接之前检测到活动 HSM 的假设。
当我们通过关闭主要 Thales nShield HSM 来测试 DR(故障转移)方案时,Pkcs11Interop 出现错误:
方法 C_Initialize 返回 CKR_FUNCTION_FAILED。
我想知道使用 Pkcs11Interop 编写的代码是否应该检查哪个 HSM 处于活动状态,然后向活动 HSM 发送请求,或者服务器上安装的安全世界软件是否应该在打开活动连接之前检查活动 HSM。
请告知我们处理这种情况的正确方向。
digital-signature - HSM nCipher:具有仲裁 m/n 的 OCS 保护密钥
我正在开发一个使用受 OCS 保护的密钥来实现标记服务器的服务器。当前配置使用 1/3 的仲裁。因此,当服务器启动时,它会询问 OCS 的密码以加载密钥。客户端希望将仲裁更新为 3/5。我想知道我是否必须询问每张 OCS 卡的密码才能将密钥加载到我的服务器中,还是只需要最后一张卡的密码。谢谢