Показ сертификата пользователя "Не удается найти сертификат и закрытый ключ для расшифровки". в винде
Есть несколько компьютеров, на которых пользовательские сертификаты внезапно перестают работать.
Бег certutil -silent -user -store my
показывает, что все пользовательские сертификаты для затронутого пользователя перестали работать.
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.
проверка %APPDATA%\Microsoft\Crypto\RSA
папка может видеть файлы закрытого ключа, то есть в этом случае первый сертификат 48fa6c038e897eb98ea252b465308c55_7cc43284-5d87-4ba0-8673-6fb4d4de8f2d
,
Каковы возможные причины этой проблемы? Я подозреваю, что ключ шифрования для закрытого ключа стирается / изменяется; но интересно, как подтвердить, если это меняется.
В этом случае мы используем Cert Hash(sha1), чтобы найти сертификат пользователя в %APPDATA%\Microsoft\SystemCertificates\My\Certificates\CC3BD02C03A1D9D40D2831A784C86DCB6D9727D8
который присутствует.
Затем, используя поле контейнера ключа, мы находим закрытый ключ в %APPDATA%\Microsoft\Crypto\RSA\S-1-5-21-2091123715-180627453-533688462-45495\48fa6c038e897eb98ea252b465308c55_7cc43284-5d87-4ba0-8673-6fb4d4de8f2d
который также присутствует.
Файлы были изменены:
• Файл системных сертификатов CC3BD02C03A1D9D40D2831A784C86DCB6D9727D8 был последний раз изменен 25.08.2017 в 10:55. Было ли это, когда был запрошен новый ключ, то есть пользователь сообщал о проблеме до этого времени?
• Файл закрытого ключа под %APPDATA%\Microsoft\Crypto\RSA\S-1-5-21-2091123715-180627453-533688462-45495\48fa6c038e897eb98ea252b465308c55_7cc43284-5d87-4ba0-8673-6fb4d4de8f2d
Последнее изменение: 10/01/2017 7:56 (ближе к времени, выданному в файле системного сертификата)
• Закрытый ключ был зашифрован с помощью главного ключа, хранящегося в %APPDATA%\Microsoft\Protect\<user SID>\c77f3872-e1e2-4449-9729-cc97e85e4a3c
который был последний изменен 25/07/2017 8:19 утра
• Папка Protect, содержащая мастер-ключ, используемый для дешифрования закрытых ключей, содержит файлы, которые в последний раз изменялись 14.08.2017, 8:23
• %APPDATA%\Microsoft\SystemCertificates\My\Certificates
имеет 0 байтовых файлов сертификатов, измененных 12/07/2017 12:00 - 7:50 с различными интервалами и 8/06/2017 23:52 - 9/06/2017 8:33 каждые 8 минут
В настоящее время мы используем аудит Windows для поиска изменений в %APPDATA%\Microsoft\SystemCertificates
папка и %APPDATA%\Microsoft\Crypto
а также %APPDATA%\Microsoft\Protect
Однако, учитывая, что файлы сертификата и закрытого ключа, по-видимому, существуют, не уверен, что это определит причину.
Журнал приложения также содержит ошибки для источника CertificateServicesClient-AutoEnrollment:
Ошибка автоматической регистрации сертификата для домена \ имени пользователя (0x8007003a) Указанный сервер не может выполнить запрошенную операцию.
Любые рекомендуемые действия для дальнейшего определения основной причины "Не удается найти сертификат и закрытый ключ для расшифровки". ошибка?
1 ответ
Проблема, кажется, вызвана удаленным сбросом пароля. В тестовой среде повторяется проблема:
• Контроллер домена Server 2012 R2 с центром сертификации, настроенным для автоматической регистрации
• Windows 7 x64 клиент присоединился к домену
• Изолированная сеть, в которой размещены только DC и клиент
• Шаблон сертификата пользователя с экспортируемым закрытым ключом
- Развертывание сертификата пользователя на клиенте с помощью групповой политики автоматической регистрации
- Удален клиент из сети
- Подтвержденный пользователь может экспортировать закрытый ключ для сертификата, позволяющего экспортировать с помощью certmgr на клиенте Windows 7
- Переподключен клиент к сети
- Сбросить пароль пользователя, вошедшего в клиент с контроллера домена
- Использовать "Запуск от имени" для кэширования обновленного пароля на клиенте
- Отключен клиент от сети
- Вышел из системы / вошел в систему отключен от сети с обновленными кэшированными учетными данными
- Невозможно экспортировать закрытый ключ
- Переподключен клиент к сети
- Невозможно экспортировать закрытый ключ
- Выход из системы / вход в сеть - теперь можно снова экспортировать закрытый ключ
Закрытые ключи защищены путем шифрования с использованием мастер-ключей, хранящихся в%APPDATA%\Microsoft\Protect \\. Мастер-ключи дополнительно шифруются с помощью комбинации элементов, включая пароль пользователя. Если главный ключ не может быть расшифрован, закрытый ключ не может быть использован.
Метод смены пароля - Ctrl+Alt+Del "Изменить пароль" на клиенте
С помощью монитора процессов, определенных Локальным центром безопасности, процесс (LSASS.exe) выполняет следующие действия:
- Связь с контроллером домена через порт TCP 88 (kerberos) и TCP порт 464 (kpasswd / kerberos v5)
- Обновите ключ reg в разделе HKLM\Security\Cache
- Написать в \domaincontroller\PIPE\protected_storage
- Обновления Serivce профиля пользователя HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\\RefCount
- Обновление мастер-ключей, используемых для расшифровки закрытых ключей:
%APPDATA%\Microsoft\Protect \\
- Прочитать файл SYNCHIST & CREDHIST в папке%APPDATA%\Microsoft\Protect
- Обновить файл%APPDATA%\Microsoft\Protect\SYNCHIST
- Процесс 1-7 может повторяться несколько раз
- Обновите C:\Windows\debug\PASSWD.log с сообщением "Попытка сменить пароль сервер / домен для пользователя
Закрытые ключи продолжают работать благодаря шагам 5 - 7.
Метод смены пароля - удаленный сброс через Active Directory - пользователи и компьютеры
- Файлы SYNCHIST & Master key не обновляются автоматически мгновенно
- Выйти из системы / войти в сеть при обновлении файлов SYNCHIST и Master key, сертификаты в порядке