Freigeben über


machineKey-Element (ASP.NET-Einstellungsschema)

Aktualisiert: November 2007

Konfiguriert Schlüssel, die zur Ver- und Entschlüsselung von Cookie- und Ansichtszustandsdaten für die Formularauthentifizierung und zur Überprüfung der Kennzeichnung des prozessexternen Sitzungszustands verwendet werden.

configuration-Element (allgemeines Einstellungsschema)
  system.web-Element (ASP.NET-Einstellungsschema)
    machineKey-Element (ASP.NET-Einstellungsschema)

<machineKey 
  validationKey="AutoGenerate,IsolateApps" [String]
  decryptionKey="AutoGenerate,IsolateApps" [String]
  validation="SHA1" [SHA1 | MD5 | 3DES | AES]
  decryption="Auto" [Auto | DES | 3DES | AES]
/>

Attribute und Elemente

In den folgenden Abschnitten werden Attribute, untergeordnete Elemente sowie übergeordnete Elemente beschrieben.

Attribute

Attribut

Beschreibung

decryption

Optionales String-Attribut.

Legt den Hashalgorithmustyp fest, der zur Datenentschlüsselung verwendet wird.

Dieses Attribut kann einen der folgenden Werte annehmen.

Wert

Beschreibung

Auto

Legt fest, dass ASP.NET bestimmt, welcher Entschlüsselungsalgorithmus basierend auf den Konfigurationseinstellungen verwendet wird. Dies ist der machineKey-Standardentschlüsselungswert.

AES

Gibt an, dass ASP.NET Daten mithilfe des AES-Algorithmus (Rijndael-Algorithmus) entschlüsselt. AES ist der Standardalgorithmus für die Entschlüsselung von Daten.

3DES

Legt fest, dass ASP.NET den TripleDES-Algorithmus zur Datenentschlüsselung verwendet. Der TripleDES-Algorithmus (3DES) verwendet drei aufeinander folgende Iterationen des DES-Algorithmus.

DES

Gibt an, dass ASP.NET den Data Encryption Standard (DES)-Algorithmus verwendet, um Daten zu entschlüsseln.

Tipp

Dieses Attribut ist neu in .NET Framework, Version 2.0.

decryptionKey

Erforderliches String-Attribut.

Legt den Schlüssel zur Ver- und Entschlüsselung der Daten oder den Prozess zur Schlüsselgenerierung fest. Dieses Attribut wird zur Ver- und Entschlüsselung bei der Formularauthentifizierung verwendet. Wenn validation auf TripleDES festgelegt ist, dient es außerdem zur Verschlüsselung des Ansichtszustands.

Der IsolateApps-Modifizierer des decryptionKey-Werts gibt an, dass ASP.NET für jede Anwendung anhand ihrer ID einen eindeutigen verschlüsselten Schlüssel generiert. IsolateApps ist ein Teil des Standardwerts.

Beim Erstellen einer Konfiguration für ein gesamtes Webserver-Netzwerk (eine Webfarm) müssen Sie dieses Attribut manuell festlegen, um eine konsistente Konfiguration zu gewährleisten.

Dieses Attribut kann einen der folgenden Werte annehmen. Der Standardwert ist AutoGenerate,IsolateApps.

Wert

Beschreibung

AutoGenerate, IsolateApps

Der AutoGenerate-Modifizierer gibt an, dass ASP.NET einen zufälligen Schlüssel generiert und ihn in der LSA (Local Security Authority) speichert. Der IsolateApps-Modifizierer gibt an, dass ASP.NET für jede Anwendung anhand ihrer ID einen eindeutigen verschlüsselten Schlüssel generiert. Dies ist der Standardwert.

value

Gibt einen manuell zugewiesenen Schlüssel an. Dieser Wert muss manuell auf eine aus Hexadezimalzeichen bestehende Zeichenfolge festgelegt werden, um die konsistente Konfiguration aller Computer in einer Webfarm sicherzustellen. Die Schlüssellänge sollte bei Verwendung der DES-Verschlüsselung 16 Hexadezimalzeichen und bei Verwendung der Triple-DES (3DES)- oder AES-Verschlüsselung 48 Hexadezimalzeichen betragen. Wenn Schlüssel verwendet werden, deren Länge die maximale Schlüssellänge unterschreitet, sollten diese nach dem Zufallsprinzip, z. B. mithilfe der RNGCryptoServiceProvider-Klasse, erstellt werden. ASP.NET kann Triple-DES nur auf Computern verwenden, die die 128-Bit-Verschlüsselung unterstützen.

validation

Erforderliches MachineKeyValidation-Attribut.

Gibt den Typ der Verschlüsselung an, die beim Überprüfen von Daten verwendet wird.

Dieses Attribut kann einen der folgenden Werte annehmen. Der Standardwert ist SHA1.

Wert

Beschreibung

AES

Legt fest, dass ASP.NET den AES-Algorithmus (Rijndael) zur Datenvalidierung verwendet.

MD5

Legt fest, dass ASP.NET den Hashalgorithmus Message Digest 5 (MD5) zur Datenvalidierung verwendet. Dieser Algorithmus ist schneller als SHA1.

SHA1

Legt fest, dass ASP.NET den SHA1-Hashalgorithmus zur Datenvalidierung verwendet. Dieser Algorithmus bietet erhöhte Sicherheit.

Dies ist der Standardwert.

3DES

Legt fest, dass ASP.NET den TripleDES-Algorithmus zur Datenvalidierung verwendet. Der TripleDES-Algorithmus verwendet drei aufeinander folgende Iterationen des DES-Algorithmus.

validationKey

Erforderliches String-Attribut.

Gibt den Schlüssel für die Validierung verschlüsselter Daten an. validationKey wird bei einem enableViewStateMAC-Wert von true verwendet, um einen MAC (Message Authentication Code) zu erstellen, mit dem ein Missbrauch des Ansichtszustands ausgeschlossen wird. Mit validationKey werden außerdem prozessexterne, anwendungsspezifische Sitzungs-IDs generiert, mit denen die Isolierung der Sitzungszustandsvariablen zwischen den Sitzungen gewährleistet wird.

Der IsolateApps-Modifizierer des validationKey-Werts gibt an, dass ASP.NET für jede Anwendung anhand ihrer ID einen eindeutigen verschlüsselten Schlüssel generiert. IsolateApps ist ein Teil des Standardwerts.

Beim Erstellen einer Konfiguration für ein gesamtes Webserver-Netzwerk (eine Webfarm) müssen Sie das validationKey-Attribut manuell festlegen, um eine konsistente Konfiguration zu gewährleisten.

Dieses Attribut kann einen der folgenden Werte annehmen. Der Standardwert ist "AutoGenerate,IsolateApps".

Wert

Beschreibung

AutoGenerate, IsolateApps

Der AutoGenerate-Modifizierer gibt an, dass ASP.NET einen zufälligen Schlüssel generiert und ihn in der LSA (Local Security Authority) speichert. Der IsolateApps-Modifizierer gibt an, dass ASP.NET für jede Anwendung anhand ihrer ID einen eindeutigen verschlüsselten Schlüssel generiert. Dies ist der Standardwert.

value

Gibt einen manuell zugewiesenen Schlüssel an. Dieser Wert muss auf eine aus Hexadezimalzeichen bestehende Zeichenfolge festgelegt werden, um die konsistente Konfiguration aller Computer in einer Webfarm sicherzustellen. Die Schlüssellänge sollte bei Verwendung der DES-Verschlüsselung 16 Hexadezimalzeichen und bei Verwendung der Triple-DES (3DES)- oder AES-Verschlüsselung 48 Hexadezimalzeichen betragen. Werden Schlüssel verwendet, deren Länge die maximale Schlüssellänge unterschreitet, so sollten diese Schlüssel nach dem Zufallsprinzip (z. B. mithilfe der RNGCryptoServiceProvider-Klasse) erstellt werden. ASP.NET kann Triple-DES nur auf Computern verwenden, die die 128-Bit-Verschlüsselung unterstützen.

Untergeordnete Elemente

Keine.

Übergeordnete Elemente

Element

Beschreibung

configuration

Gibt das erforderliche Stammelement in jeder Konfigurationsdatei an, die von der Common Language Runtime und den .NET Framework-Anwendungen verwendet wird.

system.web

Gibt das Stammelement für die ASP.NET-Konfigurationseinstellungen in einer Konfigurationsdatei an und enthält Konfigurationselemente, die ASP.NET-Webanwendungen konfigurieren und das Verhalten der Anwendungen steuern.

Hinweise

Das folgende Codebeispiel veranschaulicht, wie sowohl das validationKey-Attribut als auch das decryptionKey-Attribut auf AutoGenerate festgelegt werden. Der Wert isolateApps wird angegeben, um für jede Anwendung auf dem Server eindeutige Schlüssel zu generieren.

<machineKey 
   validationKey="AutoGenerate,IsolateApps" 
   decryptionKey="AutoGenerate,IsolateApps" 
   validation="SHA1"
/>

Elementinformationen

Konfigurationsabschnittshandler

MachineKeySection

Konfigurationsmember

MachineKey

Konfigurierbare Speicherorte

Datei Machine.config

Datei Web.config auf der Stammebene

Datei Web.config auf der Anwendungsebene

Anforderungen

Microsoft Internetinformationsdienste (IIS), Version 5.0, 5.1 oder 6.0

.NET Framework, Version 1.0, 1.1 oder 2.0

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Verschlüsseln von Konfigurationsinformationen mithilfe der geschützten Konfiguration

Gewusst wie: Konfigurieren von bestimmten Verzeichnissen mit Standorteinstellungen

Gewusst wie: Sperren von ASP.NET-Konfigurationseinstellungen

Konzepte

Sichern von Rollen

Sichern der Mitgliedschaft

Sichern von Profileigenschaften

Sichern des Sitzungszustands

ASP.NET-Konfigurationsdateihierarchie und Vererbung

Absichern der ASP.NET-Konfiguration

ASP.NET-Konfigurationsszenarios

Referenz

system.web-Element (ASP.NET-Einstellungsschema)

configuration-Element (allgemeines Einstellungsschema)

System.Configuration

System.Web.Configuration

MachineKeySection

MachineKey

Weitere Ressourcen

Allgemeine Konfigurationseinstellungen (ASP.NET)

ASP.NET-Konfigurationseinstellungen

Verwalten von ASP.NET-Websites

ASP.NET-Konfigurations-API