Freigeben über


Verwenden der Verschlüsselung zum Schützen von Kennwörtern

von Saad Ladki

Einleitung

Dieses Dokument enthält eine Übersicht über die Schritte zum Festlegen der Anwendungspool- und Arbeitsprozessisolation für IIS 7.0 und höher. Die Anwendungspoolisolation umfasst den Schutz von Daten, auf die WAS (der lokale IIS-Systemprozess) zugreifen muss. Ein Beispiel für diese Daten ist die Anwendungspool-Kennwörter. Die Arbeitsprozessisolation erfordert andererseits den Schutz von Daten, auf die die Identität des Anwendungspools zugreifen muss. Ein Beispiel für diese Daten ist das Kennwort des anonymen Benutzerkontos.

Voraussetzungen

Um diesen Prozess zu vereinfachen, werden zwei Teile von Beispielcode bereitgestellt:

  • Erstellen Sie in machine.configeinen neuen RSA-Verschlüsselungsanbieter.
  • Legen Sie den Namen des Standardanbieters in machine.configfest.

Im letzten Abschnitt zur Voraussetzung werden Sie durch das Einrichten von vier Benutzerkonten geleitet, die in späteren Themen verwendet werden.

Erstellen einer neuen RSA-Verschlüsselungsanbieteranwendung

  1. Öffnen Sie Windows Editor, und erstellen Sie eine Datei in einem Verzeichnis Ihrer Wahl namens createProvider.cs , das den folgenden C#-Code enthält:

    using System;
    using Microsoft.Web.Administration;
    using System.Configuration;
    
    namespace testingEncryption
    {   
        public class createProvider   
        {
            public static void Main(string[] args)
            {
                String keyContainerName = args[0];
                String description = args[1];
                String providerName = args[2];
                System.Configuration.Configuration machineConfig =
                System.Configuration.ConfigurationManager.OpenMachineConfiguration();
                System.Configuration.ProviderSettings settings =
                    new System.Configuration.ProviderSettings(providerName,
                    "System.Configuration.RsaProtectedConfigurationProvider,
                    System.Configuration,
                    Version=2.0.0.0, Culture=neutral,
                    PublicKeyToken=b03f5f7f11d50a3a");
                settings.Parameters["description"] = description;
                settings.Parameters["keyContainerName"] = keyContainerName;
                settings.Parameters["cspProviderName"] = String.Empty;
                settings.Parameters["useMachineContainer"] = "true";
                settings.Parameters["useOAEP"] = "false";
                settings.Parameters["name"] = providerName;
                ProtectedConfigurationSection pcSection =
                    (System.Configuration.ProtectedConfigurationSection)machineConfig.GetSection ("configProtectedData");
                pcSection.Providers.Add(settings);
                machineConfig.Save();
            }
        }
    }
    
  2. Starten Sie als Nächstes eine Eingabeaufforderung mit erhöhten Rechten:

    • Klicken Sie auf das Startmenü .
    • Klicken Sie mit der rechten Maustaste auf Eingabeaufforderung.
    • Wählen Sie "Als Administrator ausführen" aus.
  3. Navigieren Sie im Eingabeaufforderungsfenster zu dem Speicherort, an dem Sie die createProvider.cs Datei gespeichert haben, und führen Sie den folgenden Befehl aus, um den Code zu kompilieren:
    %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\csc.exe /reference:%SystemRoot%\System32\inetsrv\Microsoft.Web.Administration.dll createProvider.cs

Dieser Schritt ist jetzt abgeschlossen.

Erstellen einer Anwendung zum Ändern des Standardanbieters

  1. Öffnen Sie Windows Editor, und erstellen Sie eine Datei in einem Verzeichnis Ihrer Wahl namens setProvider.cs , das den folgenden C#-Code enthält:

    using System;
    using Microsoft.Web.Administration;
    using System.Configuration;
    namespace testingEncryption 
    {
        public class setProvider
        {
            public static void Main(string[] args)
            {
                String provider = args[0];  // example: DataProtectionConfigurationProvider
                System.Configuration.Configuration machineConfig =
                    System.Configuration.ConfigurationManager.OpenMachineConfiguration();
                ProtectedConfigurationSection pcSection =
                    (System.Configuration.ProtectedConfigurationSection)machineConfig.GetSection("configProtectedData");
                string oldEncryptionProviderName = pcSection.DefaultProvider;
                Console.WriteLine("The default provider is currently: " + oldEncryptionProviderName);
                Console.WriteLine("Changing the default provider to: " + provider);
                pcSection.DefaultProvider = provider;
                machineConfig.Save();
            }
        }
    }
    
  2. Starten Sie als Nächstes eine Eingabeaufforderung mit erhöhten Rechten:

    • Klicken Sie auf das Startmenü .
    • Klicken Sie mit der rechten Maustaste auf die Eingabeaufforderung.
    • Wählen Sie "Als Administrator ausführen" aus.
  3. Navigieren Sie im Eingabeaufforderungsfenster zu dem Speicherort, an dem Sie die setProvider.cs Datei gespeichert haben, und führen Sie den folgenden Befehl aus, um den Code zu kompilieren:
    %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\csc.exe /reference:%SystemRoot%\System32\inetsrv\Microsoft.Web.Administration.dll setProvider.cs

Dieser Schritt ist jetzt abgeschlossen.

Erstellen von Benutzerkonten

In diesem Schritt erstellen wir vier neue Benutzerkonten, die in diesem Dokument verwendet werden.

Öffnen Sie zunächst ein Befehlsshellfenster, das unter Administratorrechten ausgeführt wird, indem Sie die folgenden Schritte ausführen:

  1. Klicken Sie auf das Startmenü .
  2. Klicken Sie mit der rechten Maustaste auf die Eingabeaufforderung.
  3. Wählen Sie "Als Administrator ausführen" aus.
  4. Führen Sie im Befehlsfenster die folgenden Befehle aus:
net user /add AppPoolIdentity1 password1
   net user /add AppPoolIdentity2 password2
   net user /add AnonymousAccount1 password3
   net user /add AnonymousAccount2 password

Dieser Schritt ist jetzt abgeschlossen.

Anwendungspoolisolation

IIS verfügt über einen Prozess namens WAS, der im Kontext von LOCALSYSTEM ausgeführt wird und der einzige Prozess ist, der Zugriff auf die Anwendungspool-Kennwörter benötigt. In dieser Aufgabe haben wir Folgendes:

  • Erstellen Sie einen neuen RSA-Schlüssel (iisWasKey), auf den nur LOCALSYSTEM und Administratoren Zugriff haben. Dieser Schlüssel wird verwendet, um die Kennwörter jedes Anwendungspools zu verschlüsseln.
  • Erstellen Sie zwei Anwendungspools.
  • Konfigurieren Sie jeden dieser Anwendungspools so, dass sie unter verschiedenen Identitäten ausgeführt werden und ihre Kennwörter mithilfe des iisWasKey verschlüsseln.
  • Beschränken Sie die NTFS-Dateisystemberechtigungen für die Schlüsseldateien, sodass nur SYSTEM und Administratoren Zugriff haben.

Neuen RSA-Schlüssel erstellen

  1. Klicken Sie auf das Startmenü .
  2. Klicken Sie mit der rechten Maustaste auf die Eingabeaufforderung.
  3. Wählen Sie "Als Administrator ausführen" aus.
  4. Navigieren Sie im Befehlsfenster zu der Stelle, an der Sie Ihre createProvider.exe gespeichert haben, und führen Sie den folgenden Befehl aus:
createProvider.exe iisWasKey RsaKeyForWAS Rsa_WAS

Stellen Sie sicher, dass diese Änderungen ordnungsgemäß vorgenommen wurden. Öffnen Sie den %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\config\machine.config Windows Editor. Überprüfen Sie, ob die Zeilen für den neuen Anbieter im Abschnitt vorhanden sind.

<configProtectedData defaultProvider="RsaProtectedConfigurationProvider">
    <providers>
        <add name="RsaProtectedConfigurationProvider" type="System.Configuration.RsaProtectedConfigurationProvider,System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="NetFrameworkConfigurationKey" cspProviderName="" useMachineContainer="true" useOAEP="false"/>

        <add name="DataProtectionConfigurationProvider" type="System.Configuration.DpapiProtectedConfigurationProvider,System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" description="Uses CryptProtectData and CryptUnProtectData Windows APIs to encrypt and decrypt" useMachineProtection="true" keyEntropy=""/>

        <add name="Rsa_WAS" type="System.Configuration.RsaProtectedConfigurationProvider,System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" description="RsaKeyForWAS" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
    </providers>
</configProtectedData>

Verschlüsseln der Anwendungspool-Kennwörter

Standardmäßig verwendet IIS, wenn eine Eigenschaft verschlüsselt ist, den DefaultProvider für die Verschlüsselung, die in machine.configdefiniert ist. Der Standardwert hierfür ist RsaProtectedConfigurationProvider.

In diesem Schritt verwenden wir die zuvor erstellte setProvider.exe Anwendung, um den Anbieter in iisWasKey zu ändern und dann den IIS-Manager zum Ändern der Kennwörter zu verwenden:

  1. Klicken Sie auf das Startmenü .
  2. Klicken Sie mit der rechten Maustaste auf Eingabeaufforderung.
  3. Wählen Sie "Als Administrator ausführen" aus.
  4. Navigieren Sie im Befehlsfenster zu der Stelle, an der Sie Ihre setProvider.exe gespeichert haben, und führen Sie den folgenden Befehl aus:
setProvider.exe Rsa_WAS

Der Standardanbieter Rsa_WAS wurde erfolgreich geändert.

Erstellen neuer Anwendungspools

In diesem Schritt erstellen wir zwei neue Anwendungspools, die wir voneinander isolieren. Starten Sie dazu den IIS-Manager:

  1. Klicken Sie auf "Start", und geben Sie "INetMgr.exe" ein, und drücken Sie die EINGABETASTE (wenn Sie dazu aufgefordert werden, wählen Sie "Weiter " aus, um Ihre Berechtigungen zu erhöhen).

  2. Klicken Sie im Abschnitt "Verbindungen" auf die + Schaltfläche neben dem Namen Ihres Computers.

  3. Klicken Sie auf Anwendungspools.

  4. Wählen Sie die Aufgabe auf der rechten Seite mit dem Titel "Anwendungspool hinzufügen" aus.

  5. Geben Sie den Namen "AppPool1" ein, und drücken Sie dann "OK ", wie gezeigt:

    Screenshot des Dialogfelds

  6. Wiederholen Sie vorherige Schritte, aber verwenden Sie diesmal den Namen "AppPool2".

  7. Nun wird der folgende Bildschirm im IIS angezeigt:
    Screenshot des Bildschirms

  8. Beachten Sie, wie die Identität für AppPool1 und AppPool2NetworkService ist. Wir ändern dies in die Konten, die wir zuvor erstellt haben, indem wir mit der rechten Maustaste auf "AppPool1" klicken und dann "Erweiterte Einstellungen" auswählen.

  9. Unter dem Titel Prozessmodell:

    • Klicken Sie rechts neben den Wörtern "Identität" auf die Schaltfläche.

    • Wählen Sie im Fenster "Anwendungspool-Identity" das Optionsfeld "Benutzerdefiniertes Konto" aus und klicken Sie auf die Schaltfläche "Festlegen...".

    • Geben Sie im Dialogfeld "Anmeldeinformationen festlegen " den folgenden Benutzernamen und das folgende Kennwort ein.

      Benutzername: AppPoolIdentity1
      kennwort: password1

      Screenshot des Dialogfelds

  10. Nun sollte der Identitätswert wie unten dargestellt angezeigt werden:

    Screenshot des Dialogfelds

  11. Klicken Sie auf OK, um Ihre Änderungen zu speichern.

  12. Wiederholen Sie den vorherigen Schritt für AppPool2 und den Benutzernamen "AppPoolIdentity2" und das Kennwort "password2".

  13. Im IIS-Manager wird Folgendes angezeigt (hauptsächlich die Identitäten für die Anwendungspools wurden geändert):

    Screenshot der Anwendungspools mit den geänderten Identitäten für die Anwendungspools.

  14. Überprüfen Sie die Änderungen, indem Sie den Windows-Editor verwenden und die %SystemRoot%\System32\Inetsrv\applicationHost.config Datei öffnen. Navigieren Sie zum Abschnitt "applicationPools ", und Sie sehen, dass wir die Anwendungspool-Kennwörter mit dem Rsa_WAS Schlüssel wie gewünscht verschlüsselt haben:

    password="[enc:Rsa_WAS:jAAAAAECAAADZgAAAKQAAAUkBfhWFbUHIt/qtlo+P7CiZC10r9H0DGBvAl
                 U2mhiOxMoHXX6Dz0S8TQjKx2YTKvuE8y+SBUWrEs3JYzXKOkY45Q9z6E/3BFvru5oR9uzbjInASKF/83N
                 N1tIEsoorQWmUOjnL4XM9RNzpqkY6TgyC3CyPUGN9fR7li5+AUupHHfgVPMzcLHfCsoq+ri+X6IbEnJdu
                  cUEAYBn1P9F/Zxk=:enc]" />
                  password="[enc:Rsa_WAS:jAAAAAECAAADZgAAAKQAAEbQEa/sAmyLbryAR0hD3voip2+0RfzM44sXPekp
                  I2H7HYLzta55NfLcG8vSPHhasahKVgO4wcIcT03CLSn+5koWvAaIRdeClhXWK/X8ZQPFooOpyhOqT0TEP5v
                  jB+DXAKgq0RC6ufHFtrHMy0U69ew7/49YXEcrkF+o8OJZ1K+EkgA3J2ikHKxW0pFBU0tFvLCjt2/UXypfNI
                  0hYPe2syk=:enc]" />
    

Sperren der Verschlüsselungsanbieter

Standardmäßig erhält die IIS_IUSRS Lesezugriff auf die Schlüssel, wenn sie erstellt werden. Sie können jedoch das ASPNET_REGIIS Tool verwenden, um diesen Zugriff zu entfernen. Führen Sie dazu die folgenden Befehle an der Eingabeaufforderung mit erhöhten Rechten aus:

cd /d %systemroot%
cd Microsoft.NET\Framework\v2.0.50727
aspnet_regiis.exe -pr iisWasKey IIS_IUSRS

Dadurch wurde IIS_IUSRS (die Anwendungspoolidentitätengruppe) aus der Möglichkeit entfernt, den iisWasKey zu lesen, der nur für Administratoren und LOCALSYSTEM-Zugriff vorgesehen ist.

Arbeitsprozessisolation

In diesem Thema wird erläutert, wie Sie die Arbeitsprozessisolation einrichten, indem Sie zwei neue Websites erstellen, die Teil verschiedener Anwendungspools sind und unterschiedliche anonyme Authentifizierungsidentitäten aufweisen. Anschließend erstellen wir einen neuen RSA-Anbieter für jeden Anwendungspool, um die anonymen Kennwörter zu verschlüsseln.

Neue Websites erstellen

In diesem Abschnitt erstellen wir zwei neue Websites und fügen jeden Standort zu einem zuvor erstellten Anwendungspool hinzu. Öffnen Sie zunächst eine Befehlsshell, die unter Administratorrechten ausgeführt wird, indem Sie die folgenden Schritte ausführen:

  1. Klicken Sie auf das Startmenü .

  2. Klicken Sie mit der rechten Maustaste auf die Eingabeaufforderung.

  3. Wählen Sie "Als Administrator ausführen" aus.

  4. Navigieren Sie im Befehlsfenster mithilfe des folgenden Befehls zu Ihrem wwwroot-Verzeichnis :

    cd /d %SystemDrive%\inetpub\wwwroot
    
  5. Erstellen Sie ein neues Verzeichnis mit dem Namen "one" und ein Verzeichnis "zwei" mit den folgenden Befehlen:

    mkdir one
    
    mkdir two
    
  6. Erstellen Sie eine einfache Default.htm Datei in den Verzeichnissen "one" und "two", die folgenden HTML-Code enthalten:

    <html><body>Hello from site X</body></html>
    

    Hinweis

    Ersetzen Sie 'X' je nach Verzeichnisspeicherort der Datei durch 'eins' oder 'zwei'.

Verwenden Sie nun den IIS-Manager, um zwei Websites zu erstellen:

  1. Klicken Sie auf "Start", geben Sie INetMgr.exeein , und drücken Sie die EINGABETASTE (wenn Sie dazu aufgefordert werden, wählen Sie "Weiter ", um Ihre Berechtigungen zu erhöhen).

  2. Klicken Sie im Abschnitt "Verbindungen" auf die + Schaltfläche neben dem Namen Ihres Computers.

  3. Klicken Sie mit der rechten Maustaste auf Site in der Baumansicht unter Verbindungen und wählen Sie dann Website hinzufügen.

  4. Verwenden Sie die folgenden Informationen, um Ihre Website zu erstellen:

    Webseitenname: One
    Anwendungspool: AppPool1
    Physischer Pfad: {Speicherort Ihres Inetpub-Verzeichnisses}\wwwroot\one
    Port: 81

    Dies sollte nach Abschluss wie folgt aussehen:

    Screenshot des Dialogfelds

  5. Klicken Sie auf OK, um die Änderungen zu speichern.

  6. Wiederholen Sie die beiden vorherigen Schritte, aber verwenden Sie diesmal die folgenden Informationen für die zweite Website:

    Webseitenname: Zwei
    Anwendungspool: AppPool2
    Physischer Pfad: {Speicherort Ihres Inetpub-Verzeichnisses}\wwwroot\two
    Port: 82

Sie haben nun zwei neue Websites namens One und Two erstellt und sie den Anwendungspools "AppPool1 " und "AppPool2 " hinzugefügt.

Die URLs zum Testen Ihrer Websites sind:

  • http://localhost:81 für Website One
  • http://localhost:82 für Website Zwei

Erstellen neuer Anbieter für jeden Anwendungspool

In diesem Abschnitt erstellen wir einen neuen RSA-Anbieter für jeden der Anwendungspools:

  1. Klicken Sie auf das Startmenü.

  2. Klicken Sie mit der rechten Maustaste auf Die Eingabeaufforderung.

  3. Wählen Sie "Als Administrator ausführen" aus.

  4. Navigieren Sie im Befehlsfenster zu der Stelle, an der Sie Ihre createProvider.exe gespeichert haben, und führen Sie den folgenden Befehl aus:

    createProvider.exe App1Key RsaKeyForAppPool1 Rsa_app1
    createProvider.exe App2Key RsaKeyForAppPool2 Rsa_app2
    

Festlegen des anonymen Kontos für Website 1

Führen Sie in Ihrem Eingabeaufforderungsfenster mit erhöhten Rechten den folgenden Befehl aus:

setProvider.exe Rsa_app1
  1. Kehren Sie zurück zum IIS-Manager zurück, und doppelklicken Sie auf die Website 1.

  2. Doppelklicken Sie auf das Authentifizierungselement unter der Überschrift "Featurename ".

  3. Wählen Sie "Anonyme Authentifizierung " aus, und klicken Sie dann auf der rechten Seite auf " Bearbeiten " unter der Überschrift "Aufgaben ", in dem das Dialogfeld " Anonyme Authentifizierungsanmeldeinformationen bearbeiten " angezeigt wird.

  4. Klicken Sie auf die Option "Bestimmter Benutzer ", und klicken Sie dann auf die Schaltfläche " Festlegen ".

  5. Geben Sie den Benutzernamen "AnonymousAccount1 " und das Kennwort "Kennwort3 " ein, und wählen Sie "OK" aus.

  6. Dadurch wird das folgende Dialogfeld angezeigt:

    Screenshot des Dialogfelds

  7. Drücken Sie 'OK ', um Ihre Änderungen zu speichern.

Festlegen des anonymen Kontos für Website 2

Führen Sie in Ihrem Eingabeaufforderungsfenster mit erhöhten Rechten den folgenden Befehl aus:

setProvider.exe Rsa_app2
  1. Kehren Sie zurück zum IIS-Manager zurück, und doppelklicken Sie auf website 2.
  2. Doppelklicken Sie auf das Authentifizierungselement unter der Überschrift "Featurename ".
  3. Wählen Sie "Anonyme Authentifizierung" aus, und klicken Sie dann auf der rechten Seite auf "Bearbeiten" unter der Überschrift "Aufgaben", in der das Dialogfeld "Anonyme Anmeldeinformationenbearbeiten" angezeigt wird.
  4. Klicken Sie auf die Option "Bestimmter Benutzer ", und klicken Sie auf "Festlegen".
  5. Geben Sie den Benutzernamen AnonymousAccount2 und das Kennwort kennwort4 ein, und wählen Sie "OK" aus.
  6. Klicken Sie auf OK, um Ihre Änderungen zu speichern.

Zurücksetzen des Verschlüsselungsanbieters auf die Standardeinstellung

  • Kehren Sie zu Ihrem erhöhten Eingabeaufforderungsfenster zurück, und führen Sie den folgenden Befehl aus:
setProvider.exe RsaProtectedConfigurationProvider

Hinweis

Diese Änderung stellt sicher, dass alle verschlüsselten zukünftigen Eigenschaften den Standardverschlüsselungsanbieter verwenden.

Überprüfen der Änderungen

Überprüfen Sie, ob das, was wir wollten, tatsächlich geschehen ist. Öffnen Sie die Datei %SystemRoot%\System32\Inetsrv\applicationHost.config mit Windows-Notepad:

  • Beachten Sie, dass das Kennwort für AppPool1 und AppPool2 weiterhin mit dem Rsa_Was-Schlüssel geschützt ist.

  • Beachten Sie, dass das Kennwort für AnonymousAccount1 auch durch den Rsa_app1-Schlüssel geschützt ist:

    password="[enc:Rsa_app1:jAAAAAECAAADZgAAAKQAAKoz4LV7HyPQuyNzXh8gspB0rPG7j3Ijvn3d+jY3/f
        gma8ZxA7AHLUxjis9b0+Qu8XkLvsGn/A+F+m1O68gY1LkWzAcSW9ks81FuiBVhpZx73FzEo6aOz2QqBduJ7Xhu
        x923KMBqmwkIVJ0mVAdzwFIm6LWymwRXxNxDE4eosKsw6QP6Rd6duC8gckaLxrTndclErQYgGdMt3W6ofxzRMlc=:enc]" />
    
  • Beachten Sie schließlich, dass das Kennwort "AnonymousAccount2 " auch mit dem Rsa_app2 Schlüssel geschützt ist:

    password="[enc:Rsa_app2:jAAAAAECAAADZgAAAKQAAKmHMhCTICEUhGncSGCxQc6ll/QGXo0asEIzOf3rIjl
     sBDGRYhlDQWlf2QbFcIsBGYt8dHo9hzAQN/f03BPSlaFynevpSx4xJOg2/B8ATgPmCg4vgxpY5huZbGxongs55c
       Rr20WFXsxzlUuw1xoUZI8c1+7gQPOtF0Rwh1g8NBmb5ML/R3jAIFcMtVhaj0OOIfAP7JCjdInwztBqK0XO7FM=:enc]" />
    

Sperren der Verschlüsselungsanbieter

Sichern Sie die Dateiberechtigungen für unsere Schlüssel, wie oben beschrieben. Führen Sie die folgenden Befehle an der Eingabeaufforderung mit erhöhten Rechten aus:

cd /d %systemroot%
cd Microsoft.NET\Framework\v2.0.50727
aspnet_regiis.exe -pr App1Key IIS_IUSRS
aspnet_regiis.exe -pa App1Key   AppPoolIdentity1
aspnet_regiis.exe -pr App2Key IIS_IUSRS
aspnet_regiis.exe -pa App2Key   AppPoolIdentity2

Diese Befehle haben die Möglichkeit von IIS_IUSRS zum Lesen der Schlüssel entfernt und nur die Anwendungspoolidentität hinzugefügt, die Zugriffsberechtigungen für die Schlüssel benötigt.

Testen Ihrer Websites

Testen Sie jetzt Ihre Websites:

  • http://localhost:81
  • http://localhost:82

Alles sollte wie zuvor weiterarbeiten.

Zusammenfassung

Zusammenfassend haben wir die folgenden Aufgaben ausgeführt, um die Anwendungspooleinstellungen zu sichern:

  • Erstellt zwei Anwendungspools
  • Erstellt zwei lokale Benutzerkonten und konfiguriert sie als Anwendungspoolidentitäten
  • Wir haben einen Verwaltungsverschlüsselungsschlüssel erstellt und verwendet, um alle Kennwörter für Anwendungspoolidentitäten zu schützen.
  • Wir haben ASPNET_REGIIS verwendet, um der IIS_IUSRS (der Anwendungspoolidentitätsgruppe) den Zugriff auf den Schlüssel zu entziehen.

Diese Aufgaben stellen effektiv sicher, dass nur die Administratoren und SYSTEM-Konten die Kennwörter für die Anwendungspools lesen können. Wenn Anwendungen in einem Anwendungspool daher versucht haben, die Kennwörter für den (oder einen beliebigen) Anwendungspool abzurufen, schlägt der Versuch fehl.

Um die Einstellungen für den Arbeitsprozess zu isolieren, führen wir folgende Schritte aus:

  • Erstellen eines neuen anonymen Identitätskontos
  • Wir haben einen neuen Anbieter für den Anwendungspool erstellt.
  • Wir haben das Kennwort für die anonyme Authentifizierung mit dem Anwendungspoolschlüssel verschlüsselt.
  • Wir haben den Zugriff auf den anonymen Authentifizierungsanbieter für IIS_IUSRS entfernt und nur der Anwendungspoolidentität Zugriff gewährt.

Dadurch wurde effektiv sichergestellt, dass die Identität des Anwendungspools auch das anonyme Kennwort entschlüsseln kann, das sie gehört, und niemand anderes.