Benutzerzertifikatsshow "Zertifikat und privaten Schlüssel zur Entschlüsselung nicht gefunden." in Windows

1459
Malcolm McCaffery

Verfügen Sie über mehrere Computer, auf denen Benutzerzertifikate plötzlich nicht mehr funktionieren.

Das Ausführen certutil -silent -user -store myzeigt, dass alle Benutzerzertifikate für den betroffenen Benutzer nicht mehr funktionieren.

 my ================ Certificate 0 ================ Serial Number: 2a0000210be8f0775a3a2e2b7200040000210b Issuer: CN=PROD Issuing CA, DC=somecompany, DC=Com, DC=Au NotBefore: 10/01/2017 7:46 AM NotAfter: 10/01/2018 7:46 AM Subject: CN=username, OU=somecompany, OU=Level 1, OU=Laptop Users, OU=Special Group Users, DC=somecompany, DC=Com, DC=Au Non-root Certificate Template: 1.3.6.1.4.1.311.21.8.4586432.4805332.10505398.7351119.9274134.0.14270575.7769536 Cert Hash(sha1): cc 3b d0 2c 03 a1 d9 d4 0d 28 31 a7 84 c8 6d cb 6d 97 27 d8 Key Container = 48fa6c038e897eb98ea252b465308c55_7cc43284-5d87-4ba0-8673-6fb4d4de8f2d Provider = Microsoft Enhanced Cryptographic Provider v1.0 Cannot find the certificate and private key for decryption.  ================ Certificate 1 ================ Serial Number: 7b4d6131959b5f6cd272 Issuer: CN=Communications Server NotBefore: 25/08/2017 10:41 AM NotAfter: 25/08/2017 6:41 PM Subject: CN=someguy@somecompany.com.au Non-root Certificate Template:  Cert Hash(sha1): 80 25 75 64 60 77 21 16 35 18 ee 04 4f 87 bc 5f f0 ae b3 2a Key Container = OC_KeyContainer_Lync_someguy@somecompany.com.au Provider = Microsoft Enhanced Cryptographic Provider v1.0 Cannot find the certificate and private key for decryption. 

Beim Überprüfen des %APPDATA%\Microsoft\Crypto\RSAOrdners können die privaten Schlüsseldateien vorhanden sein, dh in diesem Fall des ersten Zertifikats 48fa6c038e897eb98ea252b465308c55_7cc43284-5d87-4ba0-8673-6fb4d4de8f2d.

Was sind mögliche Ursachen für dieses Problem? Ich vermute, dass der Verschlüsselungsschlüssel für den privaten Schlüssel gelöscht / geändert wird. Ich frage mich jedoch, wie Sie feststellen können, ob dies geändert wird.

In diesem Fall verwenden wir den Cert Hash (sha1), um das Zertifikat des Benutzers zu ermitteln, in %APPDATA%\Microsoft\SystemCertificates\My\Certificates\CC3BD02C03A1D9D40D2831A784C86DCB6D9727D8dem sich das Zertifikat befindet.

Dann finden wir über das Schlüsselcontainerfeld den privaten Schlüssel, in %APPDATA%\Microsoft\Crypto\RSA\S-1-5-21-2091123715-180627453-533688462-45495\48fa6c038e897eb98ea252b465308c55_7cc43284-5d87-4ba0-8673-6fb4d4de8f2ddem auch vorhanden ist.

Die Dateien wurden geändert:

• Die SystemCertificates-Datei CC3BD02C03A1D9D40D2831A784C86DCB6D9727D8 wurde zuletzt am 25/08/2017 10:55 geändert. War dies der Zeitpunkt, zu dem ein neuer Schlüssel angefordert wurde, dh vor dieser Zeit hatte der Benutzer ein Problem gemeldet?

• Private Key-Datei %APPDATA%\Microsoft\Crypto\RSA\S-1-5-21-2091123715-180627453-533688462-45495\48fa6c038e897eb98ea252b465308c55_7cc43284-5d87-4ba0-8673-6fb4d4de8f2dwurde zuletzt geändert am 10/01/2017 07:56 (Zeit, die auf Systemzertifikatdatei ausgestellt wurde)

• Der private Schlüssel wurde mit dem gespeicherten Hauptschlüssel verschlüsselt, %APPDATA%\Microsoft\Protect\<user SID>\c77f3872-e1e2-4449-9729-cc97e85e4a3cder zuletzt am 25/07/2017 08:19 geändert wurde

• Im Ordner Protect, der den Hauptschlüssel zum Entschlüsseln privater Schlüssel enthält, wurden die Dateien am 14.08.2017 um 8:23 Uhr zuletzt geändert

%APPDATA%\Microsoft\SystemCertificates\My\Certificateshat 0-Byte-Zertifikatsdateien geändert 12/07/2017 12:00 - 7:50 Uhr in unterschiedlichen Abständen und 08.06.2017 23:52 - 9/06/2017 8:33 Uhr alle 8 Minuten

Derzeit verwenden wir die Windows-Überwachung, um nach Änderungen an den %APPDATA%\Microsoft\SystemCertificatesOrdnern und %APPDATA%\Microsoft\Cryptound zu suchen%APPDATA%\Microsoft\Protect

In Anbetracht der Tatsache, dass die Zertifikats- und privaten Schlüsseldateien zu existieren scheinen, ist es nicht sicher, ob dies die Ursache identifiziert.

Das Anwendungsprotokoll enthält auch Fehler für die Quelle CertificateServicesClient-AutoEnrollment:

Automatische Zertifikatsregistrierung für Domäne \ Benutzername fehlgeschlagen (0x8007003a) Der angegebene Server kann die angeforderte Operation nicht ausführen.

Alle empfohlenen Schritte zur weiteren Ermittlung der Hauptursache "Das Zertifikat und der private Schlüssel für die Entschlüsselung wurden nicht gefunden" Error?

0

1 Antwort auf die Frage

0
Malcolm McCaffery

Das Problem scheint durch das Zurücksetzen von Remote-Passwörtern verursacht worden zu sein. In einer Testumgebung replizierte das Problem:

• Server 2012 R2-Domänencontroller mit mit Auto Enrollment konfigurierter Zertifizierungsstelle

• Windows 7 x64-Client ist der Domäne beigetreten

• Isoliertes Netzwerk, das nur den DC und den Client hostet

• Benutzerzertifikatvorlage mit exportierbarem privatem Schlüssel

  1. Bereitgestelltes Benutzerzertifikat für Client über Gruppenrichtlinien für die automatische Registrierung
  2. Client aus dem Netzwerk entfernt
  3. Bestätigter Benutzer konnte den privaten Schlüssel für ein Zertifikat exportieren, um den Export mit certmgr auf einem Windows 7-Client zu ermöglichen
  4. Neu verbundener Client mit dem Netzwerk
  5. Setzen Sie das Kennwort des Benutzers zurück, der beim Domänencontroller am Client angemeldet ist
  6. "Ausführen als" verwendet, um das aktualisierte Kennwort auf dem Client zwischenzuspeichern
  7. Getrennter Client vom Netzwerk getrennt
  8. Abgemeldet / Angemeldet, keine Verbindung mit dem Netzwerk mit den aktualisierten zwischengespeicherten Anmeldeinformationen
  9. Der private Schlüssel kann nicht exportiert werden
  10. Neu verbundener Client mit dem Netzwerk
  11. Der private Schlüssel kann nicht exportiert werden
  12. Abmelden / An Netzwerk anmelden - Privater Schlüssel kann jetzt erneut exportiert werden

Private Schlüssel werden durch Verschlüsselung mit in% APPDATA% \ Microsoft \ Protect \ gespeicherten Hauptschlüsseln geschützt. Die Hauptschlüssel werden durch eine Kombination von Elementen, einschließlich des Kennworts des Benutzers, weiter verschlüsselt. Wenn der Hauptschlüssel nicht entschlüsselt werden kann, kann der private Schlüssel nicht verwendet werden.

Kennwortänderungsmethode - Strg + Alt + Entf "Kennwort ändern" auf dem Client

Mithilfe des Prozessmonitors, der als Local Security Authority-Prozess (LSASS.exe) ermittelt wurde, werden die folgenden Aktionen ausgeführt:

  1. Kommunikation mit dem Domänencontroller über den Port TCP-Port 88 (Kerberos) und den TCP-Port 464 (Kpasswd / Kerberos V5)
  2. Aktualisieren Sie den Registrierungsschlüssel unter HKLM \ Security \ Cache
  3. Schreiben Sie an \ domaincontroller \ PIPE \ protected_storage
  4. Aktualisierungen des Benutzerprofils HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList \\ RefCount
  5. Aktualisieren Sie Hauptschlüssel, die zum Entschlüsseln privater Schlüssel verwendet werden:

% APPDATA% \ Microsoft \ Protect \\

  1. Lesen Sie die SYNCHIST & CREDHIST-Datei unter% APPDATA% \ Microsoft \ Protect
  2. Aktualisieren Sie die Datei% APPDATA% \ Microsoft \ Protect \ SYNCHIST
  3. Vorgang 1-7 kann sich mehrmals wiederholen
  4. Aktualisieren Sie C: \ Windows \ debug \ PASSWD.log mit der Meldung "Server / Domäne für Kennwortänderung für Benutzer versucht

Die privaten Schlüssel funktionieren aufgrund der Schritte 5 - 7 weiter.

Methode zur Kennwortänderung - Remote-Reset über Active Directory-Benutzer und -Computer

  1. SYNCHIST- und Master-Schlüsseldateien werden nicht sofort automatisch aktualisiert
  2. Abmelden / Anmelden bei Netzwerkaktualisierungen SYNCHIST- und Master-Schlüsseldateien, Zertifikate sind in Ordnung