如何在asp.net中使用符合fips 140-2的随机数生成器生成会话id
本文关键字:140-2 fips 随机数生成器 id 会话 asp net | 更新日期: 2023-09-27 18:25:55
我在Windows操作系统的安全策略设置中启用了FIPS本地/组安全策略标志,但我不知道如何使用asp.net中符合FIPS 140-2的随机数生成器生成会话id。是否涉及任何编码,或者在设置FIPS Local/Group Security Policy标志后自动生成?
设置FIPS本地/组安全策略标志的效果
设置FIPS本地/组安全策略标志时,几个Microsoft组件和产品的行为会受到影响。最明显的区别是,强制执行此设置的组件将只使用FIPS模式中批准或允许的算法。上面列出的产品的具体变化是:
任何Microsoft.NET Framework应用程序,例如Microsoft ASP.NET或Windows Communication Foundation(WCF),只允许根据FIPS 140验证的算法实现,这意味着只有以"结尾的类;CryptoServiceProvider";或";Cng";可以使用。任何创建其他加密算法类实例或创建使用不允许算法的实例的尝试都将导致InvalidOperationException异常。
https://technet.microsoft.com/en-us/library/security/cc750357.aspx
通过执行以下操作,可以使许多.NET Web应用程序符合FIPS:
1) 添加
<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="SHA1" decryption="3DES" />
到web应用程序的web.config文件的system.web部分。
您也可以在IIS 7中使用GUI,方法是单击网站或应用程序,然后单击Machine Key(在功能视图的ASP.Net部分下)。
确保SHA1或TripeDES是您的加密和解密方法。对于加密,我相信有一个STIG说你应该使用SHA1进行加密。
https://www.stigviewer.com/stig/iis_7.0_web_site/2014-03-25/finding/V-26026
检查验证密钥和解密密钥的"运行时自动生成"answers"为每个应用程序生成唯一密钥"。
此外,请确保从服务器上任何页面的第一行中删除Debug="true"。
如果web.config的编译部分中有debug="true",请将其更改为debug="false"
只要你没有在应用程序中进行任何其他非标准的加密或解密,这就应该使你的.NET应用程序符合FIP。
来源:https://msdn.microsoft.com/en-us/library/w8h3skw9(v=vs.100).aspx
https://blogs.msdn.microsoft.com/webtopics/2009/07/20/parser-error-message-this-implementation-is-not-part-of-the-windows-platform-fips-validated-cryptographic-algorithms-when-net-page-has-debugtrue/
http://forums.asp.net/t/1778719.aspx?+FIPS+已验证+加密+算法+3DES+机器密钥+解决方案+NOD+工作