DPAPI-MasterKey-Sicherungsfehler, wenn RWDC nicht verfügbar ist

Dieser Artikel bietet eine Lösung zum Beheben von DpAPI-MasterSchlüsselsicherungsfehlern, die auftreten, wenn RWDC nicht verfügbar ist.

Gilt für: Windows 10, Version 1809, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019
Ursprüngliche KB-Nummer: 3205778

Symptome

  • Das folgende Verhalten tritt in Windows 8.1 und Windows Server 2012 R2 auf, nachdem Sie MS14-066, KB2992611, KB3000850 oder neuere Updates installiert haben, die diese Korrekturen enthalten.
  • Das gleiche Verhalten tritt auch in allen Versionen von Windows 10 und höheren Versionen von Windows auf. Domänenbenutzer, die sich zum ersten Mal an einem neuen Computer an einem Standort anmelden, der von einem schreibgeschützten Domänencontroller (RODC) bedient wird, treten die folgenden Fehler und Probleme auf.

Allgemeine Probleme

  1. Beim Öffnen des Anmeldeinformations-Managers tritt ein 0x80090345 Fehler auf, der wie folgt aussieht:

    Hex Dezimal Symbolische Freundlich
    0x80090345 -2146892987 SEC_E_DELEGATION_REQUIRED Der angeforderte Vorgang kann nicht abgeschlossen werden. Der Computer muss für die Delegierung vertrauenswürdig sein, und das aktuelle Benutzerkonto muss so konfiguriert sein, dass die Delegierung zugelassen wird.
  2. Beim Speichern eines RDP-Kennworts tritt kein offensichtlicher Fehler auf.

  3. Kennwortänderungen dauern länger als erwartet.

  4. Explorer hängt, wenn Sie eine Datei verschlüsseln.

  5. In Office und Office 365 tritt beim Hinzufügen eines neuen Kontos in Windows Live Mail 2012 ein Fehler 0x80090345 auf.

  6. Die Outlook-Profilerstellung schlägt mit dem folgenden Fehler fehl:

    Eine verschlüsselte Verbindung mit Ihrem E-Mail-Server ist nicht verfügbar.

  7. Die Anmeldung bei Lync und Skype bleibt hängen oder kommt während der Phase "Server kontaktieren und anmelden" zu einer langen Verzögerung.

  8. Der SQL-Dienst kann nicht unter einem Domänenkonto gestartet werden und löst den folgenden Fehler aus:

    Die SSL-Verschlüsselung kann nicht initialisiert werden, da kein gültiges Zertifikat gefunden wurde und es nicht möglich ist, ein selbstsigniertes Zertifikat zu erstellen.

  9. SQL Server Installation schlägt mit dem folgenden Fehler fehl:

    Fehler: Beim SQL Server-Setup ist der folgende Fehler aufgetreten: "Generieren des XML-Dokumentfehlercodes 0x8410001.

  10. Domänenbenutzer können SQL-Datenbanken nicht über SMSS verwalten. (SQL Server Management Studio). Dieses Problem tritt auf, wenn die Datenbank über SSMS DataBases ->CustomerDatabase ->Tables ->Table name navigiert wird.

    Wenn Sie mit der rechten Maustaste auf die Tabelle klicken und dann Entwurf auswählen, tritt der folgende Fehler auf:

    Der angeforderte Vorgang kann nicht abgeschlossen werden. Der Computer muss für die Delegierung vertrauenswürdig sein, und das aktuelle Benutzerkonto muss so konfiguriert sein, dass die Delegierung zugelassen wird. Diese Ausnahme stammt aus System_Security_ni! System.Security.Cryptography.ProtectedData.Protect(Byte[], Byte[], System.Security.Cryptography.DataProtectionScope)."

  11. Bei der ADFS WAP-Installation kann kein selbstsigniertes Zertifikat erstellt werden, und der folgende Fehler wird ausgelöst:

    Ausnahme: Beim Versuch, das Proxyvertrauenszertifikat zu erstellen, ist ein Fehler aufgetreten.

  12. Bei der ADLDS-Installation an einem nur von RODC abgedeckten Standort tritt der folgende Fehler auf:

    Geben Sie einen gültigen Benutzer und ein Kennwort für das ausgewählte Dienstkonto ein.

    1. In diesem Fall zeigt die AdamInstall.log Folgendes an:

      adamsetup D20.10F8 0255 15:30:22.002 Enter GetServiceAccountError
      adamsetup D20.10F8 0256 15:30:22.002 Geben Sie einen gültigen Benutzernamen und ein Kennwort für das ausgewählte Dienstkonto ein.
      adamsetup D20.10F8 0257 15:30:22.002 ADAMERR_SERVICE_INVALID_CREDS

    2. Eine Beispiel-Netzwerkablaufverfolgung, die während des Fehlers erstellt wurde, zeigt, dass ADLDS ein falsches Kennwort sendet und die Kerberos-TGT-Anforderung mit KDC_ERR_PREAUTH_FAILED fehlschlägt:

      Quelle Ziel Protokoll Beschreibung
      ADLDS RODC KerberosV5 AS Request Cname: ADLDSSvc Realm: CONTOSO Sname: krbtgt/contoso {TCP:375, IPv4:7}
      RODC ADLDS KerberosV5 KerberosV5:KRB_ERROR – KDC_ERR_PREAUTH_FAILED (24) {TCP:376, IPv4:7}
    3. Die Ereignis-ID 4625 wird im Sicherheitsprotokoll des ADLDS-Servers wie folgt protokolliert:

      Ereignis-ID: 4625
      Schlüsselwörter: Überwachungsfehler
      Beschreibung: Ein Konto konnte sich nicht anmelden.
      ..
      Fehlerinformationen:
      Fehlerursache: Unbekannter Benutzername oder ungültiges Kennwort.
      Status: 0xC000006D
      Unterstatus: 0xC000006A
      ..
      Prozessinformationen:
      Name des Aufrufprozesses: C:\Windows\ADAM\adaminstall.exe

    • Die status Status und Sub werden in Folgendem übersetzt:

      Hex Dezimal Symbolische Freundlich
      0xc000006a -1073741718 STATUS_WRONG_PASSWORD Beim Versuch, ein Kennwort zu aktualisieren, gibt diese Rückgabe status an, dass der als aktuelles Kennwort angegebene Wert nicht korrekt ist.
      0xc000006d -1073741715 STATUS_LOGON_FAILURE Der Anmeldeversuch ist ungültig. Dies liegt entweder an einem fehlerhaften Benutzernamen oder an Authentifizierungsinformationen.
    • In allen Fällen die NETLOGON. LOG zeigt DsGetDcName-Anforderungen, die Aufrufe für beschreibbare Domänencontroller ausführen:

      [MISC] [3736] DsGetDcName-Funktion namens: client PID=568, Dom:VS Acct:(null) Flags: DS WRITABLE NETBIOS RET_DNS
      [KRITISCH] [3736] NetpDcMatchResponse: CON-DC4: CONTOSO.COM.: Responder ist kein beschreibbarer Server.

      [MISC] [2600] DsGetDcName-Funktion gibt 1355 (Client PID=564): Dom:VS Acct:(null) Flags: FORCE DS WRITABLE NETBIOS RET_DNS

      Dabei gilt:

      Hex Dezimal Symbolische Freundlich
      0x54b 1355 ERROR_NO_SUCH_DOMAIN Die angegebene Domäne ist entweder nicht vorhanden oder konnte nicht kontaktiert werden.

Ursache

Wenn sich ein Benutzer zum ersten Mal bei einem Computer anmeldet und versucht, Daten zum ersten Mal zu verschlüsseln, muss das Betriebssystem einen bevorzugten DPAPI-MasterKey erstellen, der auf dem aktuellen Kennwort des Benutzers basiert. Während der Erstellung des DPAPI-Hauptschlüssels wird versucht, diesen master Schlüssel zu sichern, indem ein RWDC kontaktiert wird. Wenn die Sicherung fehlschlägt, kann der MasterKey nicht erstellt werden, und ein 0x80090345 Fehler wird zurückgegeben.

Dieser Fehler ist ein neues Verhalten, das von KB2992611 eingeführt wurde. Wenn der Client bei älteren Betriebssystemen und auf Systemen, auf denen KB2992611 nicht installiert ist, während der Sicherung des MasterKey keine Verbindung mit einem RWDC herstellen kann, ist die Erstellung des master Schlüssels weiterhin zulässig, und eine lokale Sicherung wird erstellt.

Das heißt, das Legacyverhalten führt eine lokale Sicherung des master Schlüssels durch, wenn kein RWDC verfügbar ist.

Entsprechend der Entwurfsbeschreibung, dass RODCs keine Geheimnisse speichern, speichern oder verarbeiten RODCs die Sicherung des MasterKeys nicht. Daher können an Standorten, an denen kein RWDC verfügbar ist, die im Abschnitt "Symptome" beschriebenen Probleme auftreten.

Hinweis

Wenn ein bevorzugter master Schlüssel vorhanden ist, aber abgelaufen ist (Kennwortfall abgelaufen), wird versucht, einen neuen master Schlüssel zu generieren. Wenn es nicht möglich ist, eine Domänensicherung des neuen master Schlüssels zu erstellen, greift der Client auf den alten Schlüssel zurück, und das im Abschnitt "Symptome" beschriebene Verhalten tritt nicht auf.

Das Problem tritt nur auf, wenn kein MasterKey vorhanden ist und sich der Benutzer noch nicht am Computer angemeldet hat.

Lösung

  1. Stellen Sie sicher, dass in die Domäne eingebundene Arbeitsstationen und Server, auf denen das Problem auftritt, Zugriff auf RWDCs haben.

    Führen Sie die folgende Befehlszeile aus, um zu überprüfen, ob ein RWDC vorhanden ist und sich in einem fehlerfreien Zustand befindet:

    nltest /dsgetdc:<domain> /writable [/force]
    

    Verwenden Sie NETLOGON. LOG und eine Netzwerkablaufverfolgung mit den in diesem Artikel bereitgestellten Protokollbeispielen, um die Namensauflösung und Konnektivität mit einem RWDC zu überprüfen.
    Um festzustellen, ob dieses Problem auftritt, versuchen Sie, CREDMAN in Systemsteuerung zu öffnen. Wenn der Versuch mit einem 0x80090345 Fehler fehlschlägt, haben Sie dies überprüft.

  2. Wenn möglich, bringen Sie den Computer zu einem Standort, an dem ein RWDC vorhanden ist, und melden Sie sich dort zum ersten Mal an. Danach wird der DPAPI-MasterKey erstellt, und das Problem wird behoben.

  3. Wenn Sie keinen Zugriff auf ein RWDC haben und der Benutzer nicht zwischen Computern roamingt, kann der folgende Registrierungseintrag verwendet werden, um das Problem zu beheben.

    Das Festlegen dieses Werts auf 1 bewirkt, dass DPAPI-master Schlüssel lokal gesichert werden, anstatt eine Domänensicherung zu verwenden. Darüber hinaus lösen alle zuvor erstellten Schlüssel keine Aufrufe für einen beschreibbaren Domänencontroller aus, außer in begrenzten Fällen, wie unten erläutert. Diese Registrierungseinstellung gilt nur für Domänenkonten. Lokale Konten verwenden immer lokale Sicherungen.

    Path HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Protect\Providers\df9d8cd0-1501-11d1-8c7a-00c04fc297eb
    Einstellung ProtectionPolicy
    Datentyp DWORD
    Wert 1
    Betriebssystemneustart angefordert Ja
    Notizen Betriebssystem

Warnung

Verwenden Sie diesen Registrierungsschlüssel nicht, wenn sich Domänenbenutzer bei mehr als einem Computer anmelden! Da die Schlüssel lokal gesichert werden, kann jede nicht lokale Kennwortänderung eine Situation auslösen, in der alle DPAPI-master Schlüssel mit dem alten Kennwort umschlossen werden und dann keine Domänenwiederherstellung möglich ist. Dieser Registrierungsschlüssel sollte nur in einer Umgebung festgelegt werden, in der Datenverlust akzeptabel ist.

Weitere Informationen

Thema Details
Windows-Datenschutz Windows-Datenschutz

Schlüsselsicherung und -wiederherstellung in DPAPI
Wenn ein Computer Mitglied einer Domäne ist, verfügt DPAPI über einen Sicherungsmechanismus, um das Aufheben des Schutzes der Daten zu ermöglichen. Wenn ein MasterKey generiert wird, kommuniziert DPAPI mit einem Domänencontroller. Domänencontroller verfügen über ein domänenweites öffentliches/privates Schlüsselpaar, das ausschließlich dpAPI zugeordnet ist. Der lokale DPAPI-Client ruft den öffentlichen Schlüssel des Domänencontrollers mithilfe eines gegenseitig authentifizierten und datenschutzgeschützten RPC-Aufrufs von einem Domänencontroller ab. Der Client verschlüsselt den MasterKey mit dem öffentlichen Schlüssel des Domänencontrollers. Anschließend wird dieser Sicherungs-MasterKey zusammen mit dem MasterKey gespeichert, der durch das Kennwort des Benutzers geschützt ist. Wenn die DPAPI den durch das Kennwort des Benutzers geschützten MasterKey nicht verwenden kann, während der Schutz von Daten aufgehoben wird, sendet sie den Sicherungs-Masterschlüssel mithilfe eines gegenseitig authentifizierten und datenschutzgeschützten RPC-Aufrufs an einen Domänencontroller. Der Domänencontroller entschlüsselt dann den MasterKey mit seinem privaten Schlüssel und sendet ihn mithilfe desselben geschützten RPC-Aufrufs zurück an den Client. Dieser geschützte RPC-Aufruf wird verwendet, um sicherzustellen, dass niemand, der im Netzwerk lauscht, den MasterKey abrufen kann.
Überlegungen zur RODC-Platzierung Überlegungen zur RODC-Platzierung
Verknüpfte KB, die das Verhalten ändert/dieses Problem startet. Updaterollup vom November 2014 für Windows RT 8.1, Windows 8.1 und Windows Server 2012 R2 (KB3000850)
Backup Key Remote Protocol-Dokumentation Anhang B: Produktverhalten
Ausführen Client-Side Umschließung von Geheimnissen

Ein BackupKey-Remoteprotokollserver führt keine Remotesicherung von Geheimnissen durch. Stattdessen umschließt der Server jedes Geheimnis und gibt es an den Client zurück. Der Client ist dafür verantwortlich, das Geheimnis zu speichern, bis es erneut benötigt wird. An diesem Punkt kann der Client den Server auffordern, das Geheimnis zu entpacken.

Siehe 3.1.4.1.3 BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID