Podsumowanie
Aktualizacja zabezpieczeń opisana w biuletynie zabezpieczeń firmy Microsoft MS10-070 wprowadza zmiany w domyślnym mechanizmie szyfrowania w ASP.NET, który oprócz szyfrowania przeprowadza walidację (podpisywanie). W tym artykule opisano opcje konfiguracji umożliwiające przywrócenie starszego zachowania szyfrowania w ASP.NET.
Aby uzyskać więcej informacji na temat tej aktualizacji zabezpieczeń, odwiedź następującą witrynę sieci Web:
http://www.microsoft.com/technet/security/bulletin/ms10-070.mspx
Więcej informacji
ASP.NET pozwala użytkownikom na opcjonalne szyfrowanie lub walidację danych poprzez konfigurację w sekcji MachineKey. Aktualizacja zabezpieczeń, której dotyczy aktualizacja zabezpieczeń MS10-070, zmienia domyślne zachowanie szyfrowania w ASP.NET, tak aby oprócz szyfrowania przeprowadzać walidację, nawet jeśli żądane jest samo szyfrowanie.
Po zainstalowaniu aktualizacji zabezpieczeń, opisanej w biuletynie zabezpieczeń MS10-070, podczas konfigurowania szyfrowania dla ASP.NET wykonywane są następujące operacje:
- Podczas szyfrowania danych generowany jest podpis HMAC dla zaszyfrowanych danych i jest do nich dołączany.
- Podczas odszyfrowywania danych podpis HMAC jest weryfikowany przed odszyfrowaniem danych.
Następujące klucze w ASP.NET ustawieniach aplikacji (appSettings) kontrolują zachowanie podpisywania oprócz szyfrowania.
| Klawisz | Type (Typ) | Wartość domyślna | Obsługiwane wersje on.NET |
|---|---|---|---|
| aspnet:UseLegacyEncryption | wartość logiczna | Fałsz | Dodatek Service Pack 1 dla oprogramowania Microsoft .NET Framework 2.0 Microsoft .NET Framework 2.0 z dodatkiem Service Pack 2 Microsoft .NET Framework 3.5 Microsoft .NET Framework 3.5 z dodatkiem Service Pack 1 Microsoft .NET Framework 4.0 |
| aspnet:UseLegacyMachineKeyEncryption | wartość logiczna | Fałsz | Microsoft .NET Framework 4.0 |
| aspnet:ScriptResourceAllowNonJsFiles | wartość logiczna | Fałsz | Microsoft .NET Framework 3.5 z dodatkiem Service Pack 1 Microsoft .NET Framework 4.0 |
Opis ustawienia aplikacji aspnet:UseLegacyEncryption appSetting
To ustawienie aplikacji określa, czy szyfrowanie będzie dodatkowo przeprowadzać walidację za pomocą klucza HMAC, nawet jeśli sekcja walidacji w sekcji machineKey ASP.NET konfiguracji nie jest skonfigurowana do sprawdzania poprawności podpisu HMAC.
| aspnet:UseLegacyEncryption | Opis |
|---|---|
| False (wartość domyślna) | To ustawienie konfiguruje ASP.NET w celu dodatkowego sprawdzania poprawności podpisu HMAC, gdy ASP.NET jest skonfigurowany do korzystania z szyfrowania. Wystąpi nawet wtedy, gdy walidacja w kluczu machineKey nie jest skonfigurowana do podpisywania przy użyciu klucza HMAC. |
| Prawda | To ustawienie powoduje, że ASP.NET nie wykonywać sprawdzania poprawności podpisu HMAC, gdy jest on skonfigurowany do używania szyfrowania, a nie podpisywania HMAC poprzez walidację w kluczu machineKey. Uwaga To ustawienie może umożliwić złośliwemu klientowi odszyfrowanie, sfałszowanie lub zmodyfikowanie zaszyfrowanych danych w inny sposób. |
Aby skonfigurować to ustawienie, dodaj następującą konfigurację w pliku web.config komputera lub aplikacji:
<configuration>
...
<appSettings>
...
<add key="aspnet:UseLegacyEncryption" value="false" />
</appSettings>
</configuration>
Opis aspnet:UseLegacyMachineKeyEncryption appSetting
To ustawienie aplikacji określa, czy szyfrowanie za pośrednictwem klasy System.Web.Security.MachineKey spowoduje dodatkowo sprawdzenie poprawności za pomocą klucza HMAC, nawet jeśli podany argument MachineKeyProtection nie określa, czy należy przeprowadzić walidację.
| aspnet:UseLegacyMachineKeyEncryption | Opis |
|---|---|
| False (wartość domyślna) | To ustawienie konfiguruje ASP.NET w celu dodatkowego wykonywania walidacji podpisu HMAC za pomocą klasy MachineKey, gdy ASP.NET jest skonfigurowany do korzystania z szyfrowania. Wystąpi nawet wtedy, gdy podany argument MachineKeyProtection nie określa, czy należy przeprowadzić weryfikację. |
| Prawda | To ustawienie powoduje, że ASP.NET nie przeprowadzać sprawdzania poprawności podpisu HMAC za pośrednictwem klasy MachineKey, jeśli jest ona skonfigurowana do używania szyfrowania, a nie podpisywania HMAC, za pomocą podanego argumentu MachineKeyProtection. Uwaga To ustawienie może umożliwić złośliwemu klientowi odszyfrowanie, sfałszowanie lub zmodyfikowanie zaszyfrowanych danych w inny sposób. |
Aby skonfigurować to ustawienie, dodaj następującą konfigurację w pliku web.config komputera lub aplikacji:
<configuration>
...
<appSettings>
...
<add key="aspnet:UseLegacyMachineKeyEncryption" value="false" />
</appSettings>
</configuration>
Opis funkcji aspnet:ScriptResourceAllowNonJsFiles appSetting
To ustawienie aplikacji określa, czy program obsługi ScriptResource.axd w ASP.NET będzie obsługiwał pliki inne niż JavaScript (rozszerzenie .js). ScriptResource.axd to program obsługi ASP.NET, który zwraca pliki źródłowe JavaScript do składników AJAX na stronie internetowej ASP.NET.
| aspnet:ScriptResourceAllowNonJsFiles | Opis |
|---|---|
| False (wartość domyślna) | To ustawienie konfiguruje ASP.NET do obsługi tylko plików statycznych, które mają rozszerzenie .js (JavaScript) za pośrednictwem programu obsługi ScriptResource.axd. |
| Prawda | To ustawienie konfiguruje ASP.NET do obsługi dowolnego pliku statycznego, do którego aplikacja ASP.NET ma dostęp za pośrednictwem programu obsługi ScriptResource.axd. Uwaga To ustawienie umożliwia obsługę dowolnego pliku w aplikacji ASP.NET za pośrednictwem programu obsługi. Jeśli którykolwiek z takich plików zawiera dane poufne, to ustawienie może potencjalnie spowodować wyciek poufnych informacji do klienta. |
Aby skonfigurować to ustawienie, dodaj następującą konfigurację w pliku web.config komputera lub aplikacji:
<configuration>
...
<appSettings>
...
<add key="aspnet:ScriptResourceAllowNonJsFiles" value="false" />
</appSettings>
</configuration>
Źródła informacji
Aby uzyskać więcej informacji na temat sekcji MachineKey, odwiedź następującą witrynę firmy Microsoft:
http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx
Aby uzyskać więcej informacji o klasie System.Web.Security.MachineKey, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://msdn.microsoft.com/en-us/library/system.web.security.machinekey.aspx Aby uzyskać więcej informacji dotyczących używania ustawień aplikacji (appSettings), kliknij następujące numery artykułów w celu wyświetlenia tych artykułów z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
815786 Jak przechowywać i pobierać niestandardowe informacje z pliku konfiguracji aplikacji przy użyciu Visual C#
313405 Jak przechowywać i pobierać niestandardowe informacje z pliku konfiguracji aplikacji przy użyciu języka Visual Basic .NET lub Visual Basic 2005
Aby uzyskać więcej informacji dotyczących ASP.Net konfiguracji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
307626 INFORMACJE: Omówienie konfiguracji ASP.NET