首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对HMACSHA1和HMACSHA256 / HMACSHA512的遵守情况

对HMACSHA1和HMACSHA256 / HMACSHA512的遵守情况
EN

Security用户
提问于 2016-04-21 18:29:15
回答 3查看 2.9K关注 0票数 6

我的组织有一个组策略,适用于服务器强制执行FIPS遵从性(Windows策略)。

在.NET中,HMACSHA1是与FIPS兼容的加密/哈希算法之一。我不明白为什么HMACSHA256或HMACSHA512也不在FIPS合规列表中。HMACSHA1是一个比HMACSHA512更强的散列吗?这怎么可能是?

.NET:http://blog.aggregatedintelligence.com/2007/10/fips-validated-cryptographic-algorithms.html的FIPS遵从性列表

EN

回答 3

Security用户

回答已采纳

发布于 2016-04-21 18:45:23

"FIPS遵从性“不仅仅是算法。它是关于实现的。获得“遵守”徽章是一个漫长、复杂和昂贵的过程;其概念意义是,有一些强有力的理由相信实施是正确和安全的,并满足了一些安全属性。由于我们并不真正知道如何证明软件在所有一般性上都是正确的,所以大多数FIPS遵从性都是通过对开发过程的审核和分析来完成的。这是相当彻底的;例如,这包括确保在开发期间使用源代码版本控制,并将每一行代码正确地归因于正确标识的开发人员,并对开发人员执行一些背景检查。

在实践中,获得合规意味着要制作大量的文件(数千页),甚至更多的审计,这样的成本很容易达到50000美元或更多,而且需要花费数月时间。成本随着范围迅速增长。显然,在2007年(从你的链接中),微软经历了HMAC/SHA-1的全部考验,而不是HMAC/SHA-256或HMAC/SHA-512,这就是为什么前者是"FIPS验证“,而不是后者。

这可能与这样一个事实有关:在当时,.NET可以在本机代码中使用来自Win32层(CryptoAPI)的SHA-1实现,而SHA-256和SHA-512是“托管”代码;在托管实现(SHA256Managed)范围内为HMAC/SHA-256执行FIPS可能会抛出CLR运行时,包括JIT编译器,并且价格可能会飙升。SHA-256的原生实现是在.NET 3.5 (SHA256Cng)中添加的,但它只是在2007年底才发布,对于您链接到的列表中显示的遵从性来说太晚了。

票数 8
EN

Security用户

发布于 2016-04-21 18:47:49

这里有两个不同的遵守概念:

  • 使用符合的算法-官方术语是“批准”。如果HMAC的哈希算法在FIPS 180-4 (或早期版本)中列出,则会得到批准。沙-1,SHA-256和SHA-512都是FIPS批准的安全哈希算法,基于它们的HMAC函数就是FIPS批准的HMAC函数。
  • 使用遵从性实现- the官方术语被“验证”。要进行验证,一个实现必须经过一个认证过程,在那里对代码进行测试和分析,并且产品供应商必须提交适当的文件。验证过程的技术部分并不是非常困难,除非您追求高于1的验证级别(这基本上是功能测试,即验证实现返回正确的值),但它必须通过正式渠道完成,并且每次代码更改时都必须重新执行。

显然(我没有已选中),在这个实现中,只有基于SHA-1的函数经历了正式的测试过程,所以实现只对这些函数进行验证。这是一个经过验证的HMAC-SHA-1的实现,这是一种经过批准的算法.基于SHA-2的算法是被批准的,但是这种算法的实现还没有被验证.

票数 6
EN

Security用户

发布于 2022-10-11 16:45:15

此后,微软获得了HMACSHA256、HMACSHA384和HMACSHA512的FIPS兼容状态。

现在不推荐所有基于SHA1的散列。将项目更新到受支持的.NET版本,并在符合FIPS的软件中使用新批准的散列。

来源:https://learn.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/w8h3skw9(v=vs.100)?redirectedfrom=MSDN

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/121167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档