如何配置 ASP.NET 中的旧加密模式

文章翻译 文章翻译
文章编号: 2425938 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

Microsoft 安全公告 MS10-070 中介绍的安全更新对 ASP.NET 中的默认加密机制进行了更改,以执行加密以及验证(签名)。本文介绍了用于还原到 ASP.NET 中的原始加密行为的配置选项。

有关此安全更新的详细信息,请访问以下网站:
http://www.microsoft.com/china/technet/security/bulletin/ms10-070.mspx

更多信息

ASP.NET 允许用户通过 MachineKey 部分中的配置来选择加密或验证数据。安全更新 MS10-070 所述的安全更新将更改 ASP.NET 中的默认加密行为,以执行加密以及验证操作(即使只请求进行加密)。

安装安全公告 MS10-070 中所述的安全更新之后,为 ASP.NET 设置加密时将执行以下操作:
  • 在数据加密过程中,会为加密的数据生成 HMAC 签名并且该签名会附加到加密数据。
  • 在数据解密过程中,在解密数据之前验证 HMAC 签名。
ASP.NET 应用程序设置 (appSettings) 中的以下项除了控制加密之外,还控制签名行为。
收起该表格展开该表格
类型默认值支持的 .NET 版本
aspnet:UseLegacyEncryption布尔型FalseMicrosoft .NET Framework 2.0 Service Pack 1
Microsoft .NET Framework 2.0 Service Pack 2
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0
aspnet:UseLegacyMachineKeyEncryption布尔型FalseMicrosoft .NET Framework 4.0
aspnet:ScriptResourceAllowNonJsFiles布尔型FalseMicrosoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

aspnet:UseLegacyEncryption appSetting 说明

此应用程序设置指定加密时是否还将使用 HMAC 密钥执行验证,即使 ASP.NET 配置的 machineKey 部分中的验证部分未配置为 HMAC 签名验证。
收起该表格展开该表格
aspnet:UseLegacyEncryption说明
False(默认)此设置将 ASP.NET 配置为:在 ASP.NET 配置为使用加密时还将执行 HMAC 签名验证。即使 machineKey 中的验证未配置为使用 HMAC 密钥进行签名,也会进行签名验证。
True此设置将 ASP.NET 配置为:在其被配置为使用加密时不执行 HMAC 签名验证,且不通过 machineKey 中的验证来进行 HMAC 签名。

注意此设置可能允许恶意客户端解密、伪造或篡改加密数据。

要配置此设置,请在您的计算机中或应用程序 web.config 文件中添加以下配置:
<configuration> ... <appSettings> ... <add key="aspnet:UseLegacyEncryption" value="false" /> </appSettings> </configuration>

aspnet:UseLegacyMachineKeyEncryption appSetting 说明

此应用程序设置指定通过 System.Web.Security.MachineKey 类的加密是否还将使用 HMAC 密钥执行验证,即使提供的 MachineKeyProtection 参数未指定执行验证。
收起该表格展开该表格
aspnet:UseLegacyMachineKeyEncryption说明
False(默认)此设置将 ASP.NET 配置为:在 ASP.NET 配置为使用加密时,还将通过 MachineKey 类执行 HMAC 签名验证。即使提供的 MachineKeyProtection 参数未指定执行验证,也会进行签名验证。
True此设置将 ASP.NET 配置为:在其被配置为使用加密时不通过 MachineKey 类来执行 HMAC 签名验证,且不通过提供的 MachineKeyProtection 参数进行 HMAC 签名。

注意此设置可能允许恶意客户端解密、伪造或篡改加密数据。

要配置此设置,请在您的计算机中或应用程序 web.config 文件中添加以下配置:
<configuration> ... <appSettings> ... <add key="aspnet:UseLegacyMachineKeyEncryption" value="false" /> </appSettings> </configuration>

aspnet:ScriptResourceAllowNonJsFiles appSetting 说明

此应用程序设置指定 ASP.NET 中的 ScriptResource.axd 处理程序是否将用于非 JavaScript 文件 (.js extension)。ScriptResource.axd 是一种 ASP.NET 处理程序,用于将 JavaScript 源文件返回到 ASP.NET 网页中的 AJAX 组件。
收起该表格展开该表格
aspnet:ScriptResourceAllowNonJsFiles说明
False(默认)此设置将 ASP.NET 配置为:通过 ScriptResource.axd 处理程序仅为具有 .js 扩展名 (JavaScript) 的静态文件提供服务。
True此设置将 ASP.NET 配置为:通过 ScriptResource.axd 处理程序为 ASP.NET 应用程序具有访问权限的任何静态文件服务。

注意此设置允许通过处理程序为您的 ASP.NET 应用程序中的任何文件服务。如果任何此类文件包含敏感或机密数据,则此设置可能会向客户端泄漏敏感信息。

要配置此设置,请在您的计算机中或应用程序 web.config 文件中添加以下配置:
<configuration> ... <appSettings> ... <add key="aspnet:ScriptResourceAllowNonJsFiles" value="false" /> </appSettings> </configuration>

参考

有关 MachineKey 部分的详细信息,请访问以下 Microsoft 网站:
http://msdn.microsoft.com/zh-cn/library/w8h3skw9.aspx
有关 System.Web.Security.MachineKey 类的详细信息,请访问以下 Microsoft 网站:
http://msdn.microsoft.com/zh-cn/library/system.web.security.machinekey.aspx
有关如何使用应用程序设置 (appSettings) 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
815786 如何使用 Visual C# 从应用程序配置文件中存储和检索自定义信息
313405 如何使用 Visual Basic .NET 或 Visual Basic 2005 从应用程序配置文件中存储和检索自定义信息
有关 ASP.NET 配置的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
307626 信息:ASP.NET 配置概述
注意:本篇“快速发布”文章是从 Microsoft 支持组织直接创建的。 文中包含的信息按原样提供,用于响应紧急问题。 由于发布仓促,材料可能包含印刷错误,并且可能随时修订,恕不另行通知。 有关其他注意事项,请参阅使用条款

属性

文章编号: 2425938 - 最后修改: 2010年10月26日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft .NET Framework 4.0
  • Microsoft .NET Framework 3.5 Service Pack 1
  • Microsoft .NET Framework 3.5
  • Microsoft .NET Framework 2.0 Service Pack 2
  • Microsoft .NET Framework 2.0 Service Pack 1 (x86)
关键字:?
kbexpertiseinter kbhowto kbsecurity kbsurveynew KB2425938
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com