[英]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.