結論
資訊安全佈告欄 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:UseLegacyEncryption |
Boolean |
False |
Microsoft .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 |
Boolean |
False |
Microsoft .NET Framework 4.0 |
aspnet:ScriptResourceAllowNonJsFiles |
Boolean |
False |
Microsoft .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 設定概觀