我在Windows操作系统的安全策略设置中启用了FIPS本地/组安全策略标志,但我不知道如何使用asp.net中的FIPS 140-2兼容随机数生成器生成会话ID。是否涉及编码或在设置FIPS本地/组安全策略标志后自动生成?
答案 0 :(得分:2)
设置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
答案 1 :(得分:1)
通过执行以下操作,可以使许多.NET Web应用程序符合FIPS:
1)添加
<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="SHA1" decryption="3DES" />
到Web应用程序的web.config文件的system.web部分。
您也可以通过单击网站或应用程序,单击机器密钥(在功能视图的ASP.Net部分下),在IIS 7中使用GUI。
确保SHA1或TripeDES是您的加密和解密方法。对于加密,我相信有一个STIG表示你应该使用SHA1进行加密。
https://www.stigviewer.com/stig/iis_7.0_web_site/2014-03-25/finding/V-26026
检查“运行时自动生成”和“为每个应用程序生成唯一密钥”,用于验证和解密密钥。
此外,请务必从服务器上任何页面的第一行删除Debug =“true”。
如果您在web.config的编译部分中有debug =“true”,请将其更改为debug =“false”
只要您没有在应用中进行任何其他非标准加密或解密,这应该使您的.NET应用程序符合FIP。
来源: https://msdn.microsoft.com/en-us/library/w8h3skw9(v=vs.100).aspx