Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

machineKey-Element (ASP.NET-Einstellungsschema)

[Dieses Dokument dient lediglich Vorschauzwecken und kann in späteren Versionen geändert werden. Leere Themen sind als Platzhalter enthalten.]

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

<machineKey 
  validationKey="AutoGenerate,IsolateApps" [String]
  decryptionKey="AutoGenerate,IsolateApps" [String]
  validation="HMACSHA256" [SHA1 | MD5 | 3DES | AES | HMACSHA256 | 
    HMACSHA384 | HMACSHA512 | alg:algorithm_name]
  decryption="Auto" [Auto | DES | 3DES | AES | alg:algorithm_name]
/>

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

Attribute

Attribut

Beschreibung

decryption

Optionales String-Attribut.

Gibt den Algorithmus an, der zum Verschlüsseln und Entschlüsseln von Formularauthentifizierungsdaten verwendet wird.

Dieses Attribut kann einen der folgenden Werte annehmen:

  • Auto   Gibt an, dass ASP.NET automatisch bestimmt, welcher Entschlüsselungsalgorithmus verwendet wird. Dies ist der Standardwert für dieses Attribut.

  • AES   Gibt an, dass ASP.NET den AES-Algorithmus (Rijndael) zum Verschlüsseln und Entschlüsseln von Daten verwendet. AES ist der Standardalgorithmus und wird verwendet, wenn Auto der Wert dieses Attributs ist. Dieser Algorithmus erfüllt die amerikanischen Federal Information Processing Standards (FIPS).

  • DES   Gibt an, dass ASP.NET den DES-Algorithmus (Data Encryption Standard) zum Verschlüsseln und Entschlüsseln von Daten verwendet. Dieser Algorithmus ist nur aus Legacyzwecken enthalten und sollte nur verwendet werden, wenn die Kompatibilität mit früheren Versionen von ASP.NET erforderlich ist.

  • 3DES   Gibt an, dass ASP.NET den TripleDES-Algorithmus (3DES) zum Verschlüsseln und Entschlüsseln von Daten verwendet. Dieser Algorithmus ist nur aus Legacyzwecken enthalten und sollte nur verwendet werden, wenn die Kompatibilität mit früheren Versionen von ASP.NET erforderlich ist.

  • alg: algorithm_name  Gibt an, dass ASP.NET einen benutzerdefinierten Algorithmus zum Verschlüsseln und Entschlüsseln von Daten verwendet. Der Verschlüsselungsalgorithmus muss in einer Klasse definiert werden, die von SymmetricAlgorithm abgeleitet wird. ASP.NET ruft die SymmetricAlgorithm.Create-Methode auf und übergibt den Namen des Algorithmus, der hier angegeben wird.

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 der Ansichtszustand auf verschlüsselt festgelegt ist, dient es außerdem zur Verschlüsselung und Entschlüsselung des Ansichtszustands.

Dieses Attribut kann einen der folgenden Werte annehmen:

  • AutoGenerate, IsolateApps   Gibt an, dass der Schlüssel automatisch erstellt wird. Dies ist der Standardwert. 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.

  • key value  Gibt einen manuell zugewiesenen Schlüssel an. Der decryptionKey-Wert muss manuell auf eine aus Hexadezimalzeichen bestehende Zeichenfolge festgelegt werden, um die konsistente Konfiguration aller Server in einer Webfarm sicherzustellen. Der Schlüssel sollte 64 Bit (16 hexadezimale Zeichen) für die DES-Verschlüsselung oder 192 Bit (48 hexadezimale Zeichen) für 3DES umfassen. Für AES kann der Schlüssel 128 Bit (32 Zeichen), 192 Bits (48 Zeichen) oder 256 Bit (64 Zeichen) lang sein. Die längste Schlüssel bietet die höchste Sicherheit. Zufällige Schlüssel können manuell generiert werden, indem Sie die RNGCryptoServiceProvider-Klasse verwenden. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren von MachineKey in ASP.NET 2.0.

Weitere Informationen finden Sie unter DecryptionKey.

validation

Erforderliches MachineKeyValidation-Attribut.

Gibt den Hashalgorithmus zur Datenvalidierung an.

Standardmäßig wird der Ansichtszustand als Base-64-codierte Zeichenfolge gesendet. Obwohl auf den ersten Blick codierte Daten unverständlich sind, fördert Base64-Codierung die Sicherheit gefördert, da sie mühelos decodiert wird. Wenn Sie vertrauliche Daten im Ansichtszustand speichern, können Sie angeben, dass ASP.NET die Ansichtszustandsdaten zusätzlich zum Überprüfen verschlüsselt. Sie können die Verschlüsselung des Ansichtszustands für alle Seiten einer Webanwendung oder für ausgewählte Seiten angeben. Weitere Informationen zu dieser Option finden Sie unter ViewStateEncryptionMode und RegisterRequiresViewStateEncryption().

Wenn Sie die Verschlüsselung des Ansichtszustands verwenden möchten, legen Sie dieses Attribut auf AES fest. In diesem Fall wird der Wert von decryptionKey verwendet wird, um die Ansichtszustandsdaten zu verschlüsseln, und ASP.NET verwendet den HMACSHA1-Hashalgorithmus zur Datenvalidierung.

Dieses Attribut kann einen der folgenden Werte annehmen.

  • AES   Gibt an, dass ASP.NET den AES-Algorithmus (Rijndael) verwendet, um Daten zu verschlüsseln und zu entschlüsseln, wenn der Ansichtszustand verschlüsselt ist. Wenn diese Option für das validation-Attribut angegeben ist, wird der HMACSHA1-Algorithmus zur Validierung verwendet.

  • MD5   Legt fest, dass ASP.NET den Hashalgorithmus Message Digest 5 (MD5) zur Datenvalidierung verwendet. Dieser Algorithmus ist nur aus Legacyzwecken enthalten und sollte nur verwendet werden, wenn die Kompatibilität mit früheren Versionen von ASP.NET erforderlich ist.

  • SHA1   Gibt an, dass ASP.NET den HMACSHA1-Hashalgorithmus zum Überprüfen der Daten verwendet. Dieser Algorithmus sollte nur verwendet werden, wenn Sie dieses Attribut auf AES festlegen müssen, um Verschlüsselung des Ansichtszustands zu unterstützen. Verwenden Sie andernfalls HMACSHA256, HMACSHA384 oder HMACSHA512.

  • 3DES   Gibt an, dass ASP.NET den TripleDES-Algorithmus (3DES) verwendet, um Daten zu verschlüsseln und zu entschlüsseln, wenn der Ansichtszustand verschlüsselt ist. Wenn diese Option für das validation-Attribut angegeben ist, wird der HMACSHA1-Algorithmus zur Validierung verwendet. Dieser Algorithmus ist nur aus Legacyzwecken enthalten und sollte nur verwendet werden, wenn die Kompatibilität mit früheren Versionen von ASP.NET erforderlich ist.

  • HMACSHA256   Gibt an, dass ASP.NET den HMACSHA256-Hashalgorithmus zum Überprüfen der Daten verwendet. Dies ist der Standardwert. Dieser Algorithmus erfüllt die amerikanischen Federal Information Processing Standards (FIPS).

  • HMACSHA384   Gibt an, dass ASP.NET den HMACSHA384-Hashalgorithmus zum Überprüfen der Daten verwendet. Diese Option ist für Anwendungen verfügbar, die höhere Sicherheit als vom HMACSHA256-Algorithmus bereitgestellt erfordern. Dieser Algorithmus erfüllt die amerikanischen Federal Information Processing Standards (FIPS).

  • HMACSHA512   Gibt an, dass ASP.NET den HMACSHA512-Hashalgorithmus zum Überprüfen der Daten verwendet. Diese Option ist für Anwendungen verfügbar, die höhere Sicherheit als vom HMACSHA384-Algorithmus bereitgestellt erfordern. Dieser Algorithmus erfüllt die amerikanischen Federal Information Processing Standards (FIPS).

  • alg: algorithm_name  Gibt an, dass ASP.NET einen benutzerdefinierten Algorithmus verwendet. Das Präfix "alg:" ist gefolgt vom Namen einer Klasse, die von KeyedHashAlgorithm abgeleitet wird. ASP.NET ruft die Create()-Methode auf und übergibt den Namen des Algorithmus, der hier angegeben wird.

validationKey

Erforderliches String-Attribut.

Gibt den Schlüssel an, mit dem Daten validiert werden, oder den Prozess, durch den er generiert wird. Der validationKey-Wert wird auch zum Generieren prozessexterner anwendungsspezifischer Sitzungs-IDs verwendet, um sicherzustellen, dass die Sitzungszustandsvariablen zwischen Sitzungen isoliert sind.

Dieses Attribut kann einen der folgenden Werte annehmen:

  • AutoGenerate, IsolateApps   Gibt an, dass der Schlüssel automatisch erstellt wird. Dies ist der Standardwert. 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.

  • key value  Gibt einen manuell zugewiesenen Schlüssel an. Der validationKey-Wert muss manuell auf eine aus Hexadezimalzeichen bestehende Zeichenfolge festgelegt werden, um die konsistente Konfiguration aller Server in einer Webfarm sicherzustellen. Die Länge des Schlüssels hängt vom verwendeten Hashalgorithmus ab:

    • AES erfordert einen 256-Bit-Schlüssel (64 Hexadezimalzeichen).

    • MD5 erfordert einen 128-Bit-Schlüssel (32 Hexadezimalzeichen).

    • SHA1 erfordert einen 160-Bit-Schlüssel (40 Hexadezimalzeichen).

    • 3DES erfordert einen 192-Bit-Schlüssel (48 Hexadezimalzeichen).

    • HMACSHA256 erfordert einen 256-Bit-Schlüssel (64 Hexadezimalzeichen).

    • HMACSHA384 erfordert einen 384-Bit-Schlüssel (96 Hexadezimalzeichen).

    • HMACSHA512 erfordert einen 512-Bit-Schlüssel (128 Hexadezimalzeichen).

    Zufällige Schlüssel können manuell generiert werden, indem die RNGCryptoServiceProvider-Klasse verwendet wird. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren von MachineKey in ASP.NET 2.0. Dieses Thema listet nicht die Algorithmen HMACSHA256, HMACSHA384 oder HMACSHA512 auf. Allerdings funktioniert der Prozess für diese Algorithmen auch, solange Sie die richtige Schlüssellänge angeben.

Weitere Informationen finden Sie unter ValidationKey.

Untergeordnete Elemente

Keiner.

Ü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.

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" 
/>

Im folgenden Codebeispiel wird veranschaulicht, wie das validationKey-Attribut und das decryptionKey-Attribut auf manuell generierte Zufallswerte festgelegt werden. Das validationKey-Attribut wird auf einen 256-Bit-Schlüssel für den HMACSHA256-Hashalgorithmus festgelegt und das decryptionKey-Attribut auf einen 256-Bit-Schlüssel, den längstmöglichen Wert für den AES-Verschlüsselungsalgorithmus. Diese sind ausschließlich Beispiele und sollten nicht in einer Anwendung verwendet werden.

<machineKey 
    validationKey="32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F" 
    decryptionKey="B179091DBB2389B996A526DE8BCD7ACFDBCAB04EF1D085481C61496F693DF5F4" 
/>
Anzeigen: