Konfigurieren des Legacy-Verschlüsselungsmodus in ASP.NET

Zusammenfassung

Das im Microsoft-Sicherheitsbulletin MS10-070 beschriebene Sicherheitsupdate nimmt Änderungen am Standardverschlüsselungsmechanismus vor, ASP.NET zusätzlich zur Verschlüsselung eine Validierung (Signierung) durchzuführen. In diesem Artikel werden Konfigurationsoptionen beschrieben, um das Legacy-Verhalten für die Verschlüsselung in ASP.NET zu rückgängig machen.

Weitere Informationen zu diesem Sicherheitsupdate finden Sie auf der folgenden Website:

http://www.microsoft.com/technet/security/bulletin/ms10-070.mspx

Weitere Informationen

ASP.NET ermöglicht es Benutzern, Daten optional über die Konfiguration im Abschnitt MachineKey zu verschlüsseln oder zu validieren. Das Sicherheitsupdate, das durch das Sicherheitsupdate MS10-070 behoben wird, ändert das Standardverhalten der Verschlüsselung in ASP.NET, um zusätzlich zur Verschlüsselung auch dann eine Überprüfung durchzuführen, wenn nur die Verschlüsselung angefordert wird.

Nach der Installation des im Sicherheitsbulletin MS10-070 beschriebenen Sicherheitsupdates werden die folgenden Vorgänge ausgeführt, wenn die Verschlüsselung für ASP.NET eingerichtet ist:

  • Bei der Verschlüsselung der Daten wird eine HMAC-Signatur für die verschlüsselten Daten generiert und angehängt.
  • Während der Entschlüsselung von Daten wird die HMAC-Signatur validiert, bevor die Daten entschlüsselt werden.

Die folgenden Schlüssel in ASP.NET Anwendungseinstellungen (appSettings) steuern neben der Verschlüsselung auch das Verhalten der Signatur.

Taste Type Standardwert Unterstützte on.NET Versionen
aspnet:UseLegacyEncryption Boolesch Falsch 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 Boolesch Falsch Microsoft .NET Framework 4.0
aspnet:ScriptResourceAllowNonJsFiles Boolesch Falsch Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Beschreibung der aspnet:UseLegacyEncryption appSetting

Diese Anwendungseinstellung legt fest, ob die Verschlüsselung zusätzlich eine Validierung mit einem HMAC-Schlüssel durchführt, auch wenn der Validierungsabschnitt im Abschnitt machineKey der Konfiguration ASP.NET nicht für die HMAC-Signaturvalidierung konfiguriert ist.

aspnet:UseLegacyEncryption Beschreibung
False (Standard) Mit dieser Einstellung wird ASP.NET so konfiguriert, dass zusätzlich eine HMAC-Signaturüberprüfung durchgeführt wird, wenn ASP.NET für die Verwendung der Verschlüsselung konfiguriert ist. Dies geschieht auch, wenn die Validierung in machineKey nicht für das Signieren mit einem HMAC-Schlüssel konfiguriert ist.
Wahr Diese Einstellung konfiguriert ASP.NET, keine HMAC-Signaturüberprüfung durchzuführen, wenn sie für die Verwendung der Verschlüsselung und nicht für die HMAC-Signatur durch Validierung in machineKey konfiguriert ist.

Hinweis Diese Einstellung könnte es einem böswilligen Client ermöglichen, verschlüsselte Daten zu entschlüsseln, zu fälschen oder anderweitig zu manipulieren.

Um diese Einstellung zu konfigurieren, fügen Sie die folgende Konfiguration in Ihrem Computer oder Ihrer Anwendung web.config Datei hinzu:

<configuration>
...
 <appSettings>
 ...
 <add key="aspnet:UseLegacyEncryption" value="false" />
 </appSettings>
</configuration> 

Beschreibung von aspnet:UseLegacyMachineKeyEncryption appSetting

Diese Anwendungseinstellung gibt an, ob die Verschlüsselung über die System.Web.Security.MachineKey-Klasse zusätzlich eine Überprüfung mit einem HMAC-Schlüssel durchführt, auch wenn das angegebene MachineKeyProtection-Argument diese Überprüfung nicht angibt.

aspnet:UseLegacyMachineKeyEncryption Beschreibung
False (Standard) Mit dieser Einstellung wird ASP.NET so konfiguriert, dass zusätzlich die HMAC-Signaturüberprüfung über die MachineKey-Klasse durchgeführt wird, wenn ASP.NET für die Verwendung der Verschlüsselung konfiguriert ist. Dies geschieht auch dann, wenn das angegebene MachineKeyProtection-Argument nicht angibt, dass eine Überprüfung durchgeführt werden soll.
Wahr Diese Einstellung konfiguriert ASP.NET, keine HMAC-Signaturüberprüfung über die MachineKey-Klasse durchzuführen, wenn sie für die Verwendung von Verschlüsselung und nicht für die HMAC-Signatur über das bereitgestellte MachineKeyProtection-Argument konfiguriert ist.

Hinweis Diese Einstellung könnte es einem böswilligen Client ermöglichen, verschlüsselte Daten zu entschlüsseln, zu fälschen oder anderweitig zu manipulieren.

Um diese Einstellung zu konfigurieren, fügen Sie die folgende Konfiguration in Ihrem Computer oder Ihrer Anwendung web.config Datei hinzu:

<configuration>
...
 <appSettings>
 ...
 <add key="aspnet:UseLegacyMachineKeyEncryption" value="false" />
 </appSettings>
</configuration> 

Beschreibung von aspnet:ScriptResourceAllowNonJsFiles appSetting

Diese Anwendungseinstellung gibt an, ob der ScriptResource.axd-Handler in ASP.NET Nicht-JavaScript-Dateien (.js Erweiterung) verarbeitet. ScriptResource.axd ist ein ASP.NET Handler, der JavaScript-Quelldateien an AJAX-Komponenten auf einer ASP.NET Webseite zurückgibt.

aspnet:ScriptResourceAllowNonJsFiles Beschreibung
False (Standard) Mit dieser Einstellung wird ASP.NET so konfiguriert, dass nur statische Dateien mit der Erweiterung .js (JavaScript) über den ScriptResource.axd-Handler bereitgestellt werden.
Wahr Mit dieser Einstellung wird ASP.NET so konfiguriert, dass alle statischen Dateien bereitgestellt werden, auf die die ASP.NET Anwendung über den ScriptResource.axd-Handler zugreifen kann.

Hinweis: Mit dieser Einstellung kann jede Datei in Ihrer ASP.NET Anwendung über den Handler bereitgestellt werden. Wenn solche Dateien vertrauliche oder vertrauliche Daten enthalten, kann diese Einstellung potenziell dazu führen, dass vertrauliche Informationen an einen Client gelangen.

Um diese Einstellung zu konfigurieren, fügen Sie die folgende Konfiguration in Ihrem Computer oder Ihrer Anwendung web.config Datei hinzu:

<configuration>
...
 <appSettings>
 ...
 <add key="aspnet:ScriptResourceAllowNonJsFiles" value="false" />
 </appSettings>
</configuration> 

Referenzmaterial

Weitere Informationen zum Abschnitt "MachineKey" finden Sie auf der folgenden Microsoft-Website:

http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx
Weitere Informationen zur System.Web.Security.MachineKey-Klasse finden Sie auf der folgenden Microsoft-Website:

http://msdn.microsoft.com/en-us/library/system.web.security.machinekey.aspx Weitere Informationen zur Verwendung von Anwendungseinstellungen (appSettings) finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:

815786 Speichern und Abrufen von benutzerdefinierten Informationen aus einer Anwendungskonfigurationsdatei mithilfe von Visual C#
313405 Speichern und Abrufen von benutzerdefinierten Informationen aus einer Anwendungskonfigurationsdatei mithilfe von Visual Basic .NET oder Visual Basic 2005

Weitere Informationen zu ASP.Net Konfiguration finden Sie im folgenden Artikel der Microsoft Knowledge Base:

307626 INFO: Übersicht über die ASP.NET Konfiguration