如何在 ASP.NET 中設定舊版加密模式

文章翻譯 文章翻譯
文章編號: 2425938 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

結論

資訊安全佈告欄 MS10-070 中說明的安全性更新會變更 ASP.NET 中的預設加密機制,在加密之外再額外執行驗證 (簽署)。本文說明可回復為 ASP.NET 舊版加密行為的設定選項。

如需更多有關此安全性更新的資訊,請造訪下列網站:
http://www.microsoft.com/taiwan/technet/security/bulletin/ms10-070.mspx

其他相關資訊

ASP.NET 允許使用者透過 MachineKey 區段中的設定,選擇性地加密或驗證資料。安全性更新 MS10-070 中說明的安全性更新會變更 ASP.NET 中的預設加密行為,即使只有要求解密,預設行為也會在解密之外再額外執行驗證。

安裝資訊安全佈告欄 MS10-070 中說明的安全性更新後,針對 ASP.NET 設定加密時,系統會執行下列作業:
  • 在資料加密期間,系統會為加密資料產生 HMAC 簽章,並將簽章附加至加密資料。
  • 在資料解密期間,系統會在解密資料前先對 HMAC 簽章進行驗證。
以下是 ASP.NET 應用程式設定 (appSettings) 中,控制除加密之外的簽署行為機碼。
摺疊此表格展開此表格
機碼類型預設值支援的 .NET 版本
aspnet:UseLegacyEncryptionBooleanFalseMicrosoft .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:UseLegacyMachineKeyEncryptionBooleanFalseMicrosoft .NET Framework 4.0
aspnet:ScriptResourceAllowNonJsFilesBooleanFalseMicrosoft .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 設定為使用加密但不透過 machineKey 中的驗證使用 HMAC 簽署時,設定 ASP.NET 不執行 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 設定為使用加密但不透過提供的 MachineKeyProtection 引數使用 HMAC 簽署時,設定 ASP.NET 不透過 MachineKey 類別執行 HMAC 簽署驗證。

注意 這個設定可能會允許惡意用戶端解密、偽造,或以其他方式竄改加密資料。

若要設定這個設定,將下列設定加入您的電腦或應用程式的 web.config 檔案:
<configuration> ... <appSettings> ... <add key="aspnet:UseLegacyMachineKeyEncryption" value="false" /> </appSettings> </configuration>

aspnet:ScriptResourceAllowNonJsFiles appSetting 的說明

這個應用程式設定可指定 ASP.NET 中的 ScriptResource.axd 處理常式是否供應非 JavaScript 檔案 (副檔名為 .js)。ScriptResource.axd 是 ASP.NET 處理常式,可在 ASP.NET 網頁中,將 JavaScript 來源檔案傳回至 AJAX 元件。
摺疊此表格展開此表格
aspnet:ScriptResourceAllowNonJsFiles描述
False (預設值)這個設定可設定 ASP.NET 透過 ScriptResource.axd 處理常式,只供應副檔名為 .js (JavaScript) 的靜態檔案。
True這個設定可設定 ASP.NET 供應任何 ASP.NET 應用程式可透過 ScriptResource.axd 處理常式進行存取的靜態檔案。

注意這個設定可讓 ASP.NET 應用程式內的所有檔案透過處理常式供應。如果這類型的檔案中包含有敏感性或機密性資料,則這個設定可能會將敏感性資訊洩漏給用戶端。

若要設定這個設定,將下列設定加入您的電腦或應用程式的 web.config 檔案:
<configuration> ... <appSettings> ... <add key="aspnet:ScriptResourceAllowNonJsFiles" value="false" /> </appSettings> </configuration>

參考

如需更多有關 MachineKey 區段的資訊,請造訪下列 Microsoft 網站:
http://msdn.microsoft.com/zh-tw/library/w8h3skw9.aspx
如需更多有關 System.Web.Security.MachineKey 類別的資訊,請造訪下列 Microsoft 網站:
http://msdn.microsoft.com/zh-tw/library/system.web.security.machinekey.aspx
如需更多有關如何使用應用程式設定 (appSettings) 的資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
815786 如何透過使用 Visual C# 儲存和擷取應用程式設定檔案中的自訂資訊
313405 如何透過使用 Visual Basic .NET 或 Visual Basic 2005 儲存和擷取應用程式設定檔案中的自訂資訊
如需更多有關 ASP.Net 設定的資訊,請按一下下面的文章編號,檢視 Microsoft 知識庫中的文件:
307626 INFO: 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