繁体   English   中英

如果启用了Windows FIPS遵从策略,为什么不允许使用.NET“托管”密码学类?

[英]Why are the .NET “Managed” Cryptography classes not permitted if Windows FIPS Compliance policy is enabled?

我一直在努力使我们的.NET应用程序符合FIPS,但发现Managed密码术类(例如AESManaged )不符合FIPS。 我还阅读了其他几篇文章和有关哪些类符合标准的问题,例如C#AES算法何时符合FIPS? http://social.msdn.microsoft.com/Forums/zh-CN/netfxbcl/thread/e0b4493f-6e20-4b75-a118-6b6e5d26a2a6 看起来CryptoServiceProvider类符合FIPS,但Managed类却不符合。

我只是想知道是否有人可以解释CryptoServiceProvider类和Managed类之间的CryptoServiceProvider 而且,如果有人可以解释为什么CryptoServiceProvider类符合FIPS,而Managed类却不兼容,那么我可以向老板解释为什么我必须重写我们的加密方法。 他们在根本上根本不同吗? 还是MS只是不让Managed Classes接受NIST认证? 如果Managed类只是包装CryptoServiceProvider类,那么为什么Managed类不自动符合FIPS? 而且,如果我编写了一个类来将FIPS兼容类包装到我自己更容易使用的类中,我的软件是否不再兼容FIPS?

谢谢。

“符合FIPS”是错误的术语-您所说的是经过FIPS认证的产品。 不同之处在于,如果该算法需要与参考实现和第三方实现兼容,那么它就必须与描述该算法的相应FIPS兼容。 但是认证是另外一回事。

CryptoServiceProvider类调用CryptoAPI(非托管Windows API)以执行实际的加密操作,并且某些CryptoAPI模块经过FIPS认证(出于商业目的)。 显然,没有足够的理由来认证.NET托管类-如果您需要经过认证的模块,请使用CryptoAPI模块。 认证需要花费大量时间,精力和大量金钱。

另外,我猜可能有一些技术原因会阻止受管模块的认证,但这只是一个猜测。 .NET(IL和虚拟机)的性质可能会与为认证过程定义的某些要求相抵触,即它们无法被认证。

至于您自己的包装课程,有几家公司本身提供人员培训和认证。 他们还提供咨询服务。 我希望有这样的服务的人在这里回复,但是如果需要,您也可以与他们联系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM