【问题标题】:Cryptography in .NET with HSM without PKCS11.NET 中的加密与 HSM 没有 PKCS11
【发布时间】:2016-11-03 16:06:54
【问题描述】:

我正在使用 .NET 3.5 中的 HSM 开发一个应用程序来执行加密操作(用于客户演示),没有 PKCS#11,在 c#(加密命名空间)中

  1. 我找到了 HSM 的 CSP 支持的算法(使用 certutil -csp "HSM's CSP Provider name found in regedit" -csptest),其中一些在 Cryptography namespace 中没有 CryptoServiceProvider(RC2、RC4、DESX 对称算法;MD4、MD2 , AES-GMAC 哈希算法),但它们在 MS 文档中被列为支持:https://msdn.microsoft.com/en-us/library/windows/desktop/bb931354(v=vs.85).aspx。有人知道如何使用这些来执行操作吗?换句话说,是否可以选择没有特殊 CSP 类的算法?

  2. 我有一个类似的随机数生成问题。我的 HSM 支持这些 RNG 算法:RNG、FIPS186DSARNG、DUALECRNG(发现方法与 1 中的算法相同。)有没有办法在 C# 中使用指定算法生成随机数?

  3. 我终于想将生成的对称密钥直接保存在 HSM 上,但 Cryptography 命名空间只有非对称密钥的 KeyContainers。

提前感谢任何对这些问题有想法的人! 编辑:添加了 .NET 框架的版本,3.5

【问题讨论】:

  • 请注意:不要使用基于不对称原语的RNG。 Dual EC RNG 之所以广为人知,是因为它的实现很可能被 NSA 破解。除此之外,它们通常很慢。
  • 好的,谢谢您的建议

标签: c# .net random cryptography hsm


【解决方案1】:

PKCS#11 接口优于 CSP 接口,例如不支持对称密钥的持久性。有some improvements in .NET 4.6.2 cryptography classes,但它们都与 CNG 相关。

我的建议:如果您需要 RSA 以外的任何东西,请使用 PKCS#11。

【讨论】:

  • 我工作的重点实际上是探索 CNG 提供的可能性,我已经用 PKCS#11 开发了我需要的一切。感谢您对对称密钥的回答!
猜你喜欢
  • 2019-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多