Поделиться через


Сбои резервного копирования DPAPI MasterKey при недоступности RWDC

В этой статье представлено решение для решения сбоев резервного копирования MasterKey DPAPI, возникающих при недоступности RWDC.

Исходный номер базы знаний: 3205778

Симптомы

  • Следующее поведение происходит в Windows 8.1 и Windows Server 2012 R2 после установки MS14-066, KB2992611, KB3000850 или более новых обновлений, которые включают эти исправления.
  • Такое же поведение также происходит во всех версиях Windows 10 и более поздних версиях Windows. Пользователи домена, которые впервые входят на новый компьютер на сайте, обслуживаемом контроллером домена только для чтения (RODC), сталкиваются со следующими ошибками и проблемами.

Универсальные проблемы

  1. Открытие диспетчера учетных данных завершается ошибкой 0x80090345, которая сопоставляется со следующими параметрами:

    Проклятие Десятичное число Символический Понятное имя
    0x80090345 -2146892987 SEC_E_ТребуетсяДелегирование Невозможно выполнить запрошенную операцию. Компьютер должен быть доверенным для делегирования, и текущая учетная запись пользователя должна быть настроена на разрешение делегирования.
  2. Сохранение пароля RDP завершается ошибкой без видимой ошибки.

  3. Изменения паролей занимают больше времени, чем ожидалось.

  4. Обозреватель зависает при шифровании файла.

  5. В Office и Office 365 добавление новой учетной записи в Почта Windows Live 2012 завершается ошибкой 0x80090345.

  6. Создание профиля Outlook завершается сбоем со следующей ошибкой:

    Зашифрованное подключение к почтовому серверу недоступно.

  7. Вход в Lync и Skype зависает или испытывает длительную задержку во время этапа "Обращение к серверу и вход".

  8. Служба SQL не запускается под учетной записью домена и вызывает следующую ошибку:

    Не удалось инициализировать шифрование по протоколу SSL, так как не удалось найти допустимый сертификат, а самозаверяющий сертификат создать невозможно.

  9. Установка SQL Server завершается сбоем со следующей ошибкой:

    Сбой установки SQL Server.
    При установке SQL Server возникла следующая ошибка:
    Произошла ошибка при создании XML-документа.
    Код ошибки 0x84B10001.

  10. Пользователи домена не могут управлять базами данных SQL из SMSS. (СРЕДА SQL Server Management Studio). Эта проблема возникает при переходе из базы данных через SSMS DataBases ->CustomerDatabase ->Table -Table-Table> name.

    Если щелкнуть таблицу правой кнопкой мыши и выбрать конструктор, возникает следующая ошибка:

    Невозможно выполнить запрошенную операцию. Компьютер должен быть доверенным для делегирования, и текущая учетная запись пользователя должна быть настроена на разрешение делегирования. Это исключение возникло из System_Security_ni! System.Security.Cryptography.ProtectedData.Protect(Byte[], Byte[], System.Security.Cryptography.DataProtectionScope)."

  11. Установка WAP ADFS не может создать самозаверяющий сертификат и вызывает следующую ошибку:

    Исключение: при попытке создать сертификат доверия прокси-сервера произошла ошибка.

  12. Установка ADLDS на закрытом сайте rodC завершается сбоем со следующей ошибкой:

    Введите допустимого пользователя и пароль для выбранной учетной записи службы

    1. В этой ситуации AdamInstall.log отображает следующее:

      adamsetup D20.10F8 0255 15:30:22.002 Ввод GetServiceAccountError
      adamsetup D20.10F8 0256 15:30:22.002 Введите допустимое имя пользователя и пароль для выбранной учетной записи службы.
      adamsetup D20.10F8 0257 15:30:22.002 ADAMERR_СЕРВИС_НЕВЕРНЫЕ_УЧЕТНЫЕ_ДАННЫЕ

    2. Пример трассировки сети, выполненной во время сбоя, показывает, что ADLDS отправляет неверный пароль, и запрос TGT Kerberos завершается ошибкой с KDC_ERR_PREAUTH_FAILED:

      Источник Назначение Протокол Описание
      ADLDS Контроллер домена только для чтения KerberosV5 AS Request Cname: ADLDSSvc Realm: CONTOSO Sname: krbtgt/contoso {TCP:375, IPv4:7}
      Контроллер домена только для чтения ADLDS KerberosV5 KerberosV5:KRB_ERROR - KDC_ERR_PREAUTH_FAILED (24) {TCP:376, IPv4:7}
    3. Идентификатор события 4625 регистрируется в журнале безопасности сервера ADLDS следующим образом:

      Идентификатор события: 4625
      Ключевые слова: сбой аудита
      Описание. Не удалось войти в учетную запись.
      ..
      Сведения о сбоях:
      Причина сбоя: неизвестное имя пользователя или неправильный пароль.
      Состояние: 0xC000006D
      Состояние вложенных данных: 0xC000006A
      ..
      Сведения о процессе:
      Имя процесса вызова: C:\Windows\ADAM\adaminstall.exe

    • Где состояние "Состояние" и "Вложенный" преобразуется в:

      Проклятие Десятичное число Символический Понятное имя
      0xc000006a -1073741718 СТАТУС_НЕПРАВИЛЬНЫЙ_ПАРОЛЬ При попытке обновить пароль это состояние возврата указывает, что значение, предоставленное в качестве текущего пароля, неправильно.
      0xc000006d -1073741715 СОСТОЯНИЕ_СБОЙ_ВХОДА Попытка входа в систему недопустима. Это связано с неправильным именем пользователя или информацией о проверке подлинности.
    • Во всех случаях NETLOGON. LOG показывает запрос DsGetDcName, выполняющий вызовы для контроллеров домена, доступных для записи:

      [MISC] [3736] Функция DsGetDcName называется: client PID=568, Dom:VS Acct:(null) Flags: DS WRITABLE NETBIOS RET_DNS
      [КРИТИЧЕСКОЕ] [3736] NetpDcMatchResponse: CON-DC4: CONTOSO.COM.: Ответитель не является записываемым сервером.

      [MISC] [2600] Функция DsGetDcName возвращает значение 1355 (client PID=564): Флаги Dom:VS Acct:(null): FORCE DS WRITABLE NETBIOS RET_DNS

      Где:

      Проклятие Десятичное число Символический Понятное имя
      0x54b 1355 ERROR_NO_SUCH_DOMAIN указанный домен не существует, либо к нему нет доступа.

Причина

Когда пользователь впервые входит на компьютер и пытается зашифровать данные в первый раз, операционная система должна создать предпочтительный главный ключ DPAPI, который основан на текущем пароле пользователя. Во время создания главного ключа DPAPI предпринята попытка создать резервную копию этого главного ключа, связавшись с RWDC. Если резервная копия завершается ошибкой, мастер-ключ не может быть создан, и возвращается ошибка 0x80090345.

Это новое поведение, которое было введено KB2992611. В старых операционных системах и в системах, которые не установлены KB2992611, если клиент не сможет связаться с RWDC во время резервного копирования MasterKey, создание главного ключа по-прежнему разрешено, а локальная резервная копия создается.

То есть устаревшее поведение выполняет локальную резервную копию главного ключа, если RWDC недоступен.

В соответствии с кратким описанием, что контроллеры домена не хранят секреты, контроллеры домена не хранят и не обрабатывают резервное копирование MasterKey. Таким образом, на сайтах, где нет RWDC, могут возникнуть проблемы, описанные в разделе "Симптомы".

Примечание.

Если предпочтительный главный ключ существует, но истек (истек срок действия пароля), предпринимается попытка создать новый главный ключ. Если невозможно создать резервную копию домена нового главного ключа, клиент возвращается к старой, и поведение, описанное в разделе "Симптомы", не происходит.

Проблема возникает только в том случае, если не присутствует MasterKey и когда пользователь не вошел на компьютер раньше.

Решение

  1. Убедитесь, что присоединенные к домену рабочие станции и серверы, на которых возникает проблема, имеют доступ к RWDCs.

    Выполните следующую командную строку, чтобы убедиться, что RWDC существует и находится в работоспособном состоянии:

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

    Используйте NETLOGON. LOG и трассировка сети с приведенными примерами журналов в этой статье для проверки разрешения имен и подключения к RWDC.
    Чтобы определить, возникает ли эта проблема, попробуйте открыть CREDMAN в панель управления. Если попытка завершается сбоем с ошибкой 0x80090345, вы проверили это.

  2. Если это возможно, перейдите на сайт, где существует RWDC, а затем войдите туда в первый раз. После этого будет создан главный ключ DPAPI, и проблема будет устранена.

  3. Если у вас нет доступа к RWDC и если пользователь не будет перемещаться между компьютерами, для устранения проблемы можно использовать следующую запись реестра.

    При задании этого значения значение равно 1 приводит к тому, что главные ключи DPAPI будут создаваться локально вместо резервного копирования домена. Кроме того, все ранее созданные ключи не активируют вызовы контроллера домена, допускающего запись, за исключением ограниченных случаев, как описано ниже. Этот параметр реестра применяется только к учетным записям домена. Локальные учетные записи всегда используют локальные резервные копии.

    Путь HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Protect\Providers\df9d8cd0-1501-11d1-8c7a-00c04fc297eb
    Параметр Политика защиты
    Тип данных DWORD (32-битное целое число)
    Ценность 1
    Запрошенная перезагрузка ОС Да
    Примечания ОС

Предупреждение

Не используйте этот раздел реестра, если пользователи домена войдите на несколько компьютеров! Так как ключи создаются локально, любое изменение пароля, отличное от локального, может вызвать ситуацию, в которой все главные ключи DPAPI упаковываются с помощью старого пароля, а затем восстановление домена невозможно. Этот раздел реестра следует задать только в среде, в которой допускается потеря данных.

Дополнительная информация

Раздел Сведения
Защита данных Windows Защита данных Windows

Резервное копирование ключей и восстановление в DPAPI
Если компьютер является членом домена, DPAPI имеет механизм резервного копирования для разрешения отмены защиты данных. При создании MasterKey DPAPI взаимодействует с контроллером домена. Контроллеры домена имеют пару открытых и закрытых ключей на уровне домена, связанную исключительно с DPAPI. Локальный клиент DPAPI получает открытый ключ контроллера домена от контроллера домена с помощью взаимно проверенного и защищенного вызова RPC конфиденциальности. Клиент шифрует MasterKey с открытым ключом контроллера домена. Затем он сохраняет эту резервную копию MasterKey вместе с MasterKey, защищенной паролем пользователя. При отмене защиты данных, если DPAPI не может использовать MasterKey, защищенный паролем пользователя, он отправляет резервное копирование MasterKey контроллеру домена с помощью взаимно проверенного и защищенного вызова RPC конфиденциальности. Затем контроллер домена расшифровывает MasterKey с закрытым ключом и отправляет его клиенту с помощью того же защищенного вызова RPC. Этот защищенный вызов RPC используется для обеспечения того, чтобы никто, прослушивающий сеть, не смог получить MasterKey.
Рекомендации по размещению RODC Рекомендации по размещению RODC
Связанная база знаний, которая изменяет поведение или запускает эту проблему. Накопительный пакет обновления за ноябрь 2014 г. для Windows RT 8.1, Windows 8.1 и Windows Server 2012 R2 (KB3000850)
Документация по удаленному протоколу резервного копирования ключа резервного копирования Приложение B. Поведение продукта
Выполнение оболочки секретов на стороне клиента

Сервер удаленного протокола BackupKey фактически не выполняет удаленную резервную копию секретов. Вместо этого сервер упаковывает каждый секрет и возвращает его клиенту. Клиент отвечает за хранение секрета до тех пор, пока он не потребуется еще раз, в какой момент клиент может запросить сервер, чтобы распаковать секрет.

См. 3.1.4.1.3 BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID