为了账号安全,请及时绑定邮箱和手机立即绑定

在符合 FIPS 的环境中使用 DevForce 时的异常

在符合 FIPS 的环境中使用 DevForce 时的异常

C#
明月笑刀无情 2021-08-22 14:49:06
我们有一些客户想要在“ FIPS 模式”下在 Windows 上运行我们的软件(使用 DevForce)。似乎 DevForce 完成的大部分加密在默认情况下都符合 FIPS,但我们遇到了 DevForce 所做的一些散列问题。具体来说,使用调用如下的代码AesCryptoProvider.CalcStringHash:/// <summary>/// Returns a hash encoded as a string with the chars (A-Z,A-z,0-9,_) only./// </summary>/// <remarks>/// Under the covers this method returns an 128 bit hash code calculated/// using SHA1.  This code is then encoded into an approx Base64 encode/// of the chars listed above.  This will usually be approx 28 chars in length,/// which may then be truncated based on the maxChars parameter. This/// method can process approx 100K 300 char strings a second./// </remarks>/// <param name="stringToHash"></param>/// <param name="maxChars"></param>/// <returns></returns>public string CalcStringHash(string stringToHash, int maxChars){  return CodingFns.EncodeBase64(new SHA1Managed().ComputeHash(Encoding.Unicode.GetBytes(stringToHash))).Substring(0, maxChars).Replace("=", "").Replace("/", "_d").Replace("+", "_p");}该方法直接实例化一个SHA1Managed实例,不幸的是,该类不符合 FIPS。这是上下文的完整堆栈跟踪:Exception: System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.   at System.Security.Cryptography.SHA1Managed..ctor()   at IdeaBlade.Core.PlatformServices.AesCryptoProvider.CalcStringHash(String stringToHash, Int32 maxChars)   at IdeaBlade.Core.DynamicTypeInfo.GetUniqueToken()   at IdeaBlade.Core.DynamicTypeInfo.BuildDynamicTypeName()是否有任何解决方法可以让 DevForce 在 FIPS 模式下工作?或者这是可以在未来版本中添加的内容吗?我注意到对该方法的评论谈到了性能。如果这是一种性能关键的方法并且切换到 FIPS-complaint 替代方法会导致性能下降,那么它可能是一个可配置的选项?我们只有一位客户抱怨 FIPS,但有更多客户关心性能,所以我不想让不关心 FIPS 的人更慢。
查看完整描述

1 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

这是一个错误,我们可以解决这个问题(希望下一个版本)。此散列逻辑仅在为“动态”类型生成名称时使用,在处理匿名类型和动态查询时使用。您可以通过投影到自定义类型而不是匿名类型来解决此错误,否则没有解决方法可以避免该问题。

如果性能是一个问题,并且很可能不是因为这种散列现在仅用于动态类型名称,我们可以查看一个开关以在 FIPS/非 FIPS 兼容提供程序之间进行选择。


查看完整回答
反对 回复 2021-08-22
  • 1 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信