Как выполнить обновление прошивки TPM в последней версии Windows 10?

441
theultramage

У меня есть несколько настольных компьютеров HP, работающих под управлением последней версии Windows 10 и требующих обновления прошивки TPM (sp82407.exe) для исправления прошлогодней неисправной криптографической уязвимости Infineon. Программа обновления требует инициализации доверенного платформенного модуля и требует, чтобы пользователь вводил либо ключевую фразу, либо файл резервной копии ключа для продолжения.

Windows 10 отказывается открывать диалоговое окно ввода ключевой фразы / резервного копирования ключа во время инициализации TPM, что бы я ни пытался. Все руководства, которые я читаю, либо устарели, либо совершенно неверны. В Win7 это было легко, возможность инициализации вручную была прямо там, в tpm.msc. Но Win10 в какой-то момент изменил его, поэтому по умолчанию из соображений безопасности генерируется случайный ключ, а затем отбрасывается. Поэтому сейчас обновление прошивки невозможно.

Это усугубляется требованием физического присутствия TPM для нажатия F3 во время загрузки, чтобы подтвердить этап очистки TPM. Я провел буквально часы на месте, многократно перезагружая медленно загружающийся ПК и пробуя различные команды и переключатели из найденных мной руководств. Это расстраивает и расстраивает. Ни Microsoft, ни HP не признают ничего подобного в своей документации TPM, и инструмент обновления прошивки не приспособлен для этого нового поведения Windows.

Итак, кто-нибудь может предоставить рабочие инструкции о том, как переключить инициализацию TPM в ручной режим на последней Windows 10?

0

1 ответ на вопрос

0
theultramage

Согласно Readme.html, включенному в архив SoftPaq sp82407.exe:

Windows 10 ® Версия 1607 и более поздние
. Авторизация владельца больше не сохраняется в локальной системе. Для обновления прошивки необходимо очистить доверенный платформенный модуль и снова стать владельцем с измененным параметром Windows, чтобы авторизация владельца сохранялась в локальной системе.

Для обновления прошивки необходимы следующие шаги:

  1. Установите для раздела реестра «HKLM \ Software \ Policies \ Microsoft \ TPM \ OSManagedAuthLevel» значение 4 [REG_DWORD].
  2. Запустите tpm.msc и нажмите «Очистить TPM ...». Перезагрузите компьютер.
  3. Запустите tpm.msc и нажмите «Подготовить TPM ...».
  4. Запустите средство обновления прошивки TPM и обновите прошивку. Перезагрузите компьютер.
  5. Восстановите ключ реестра к его предыдущему значению.
  6. Запустите tpm.msc и нажмите «Очистить TPM ...». Перезагрузите компьютер.
  7. Запустите tpm.msc и нажмите «Подготовить TPM ...».

Что касается того, как именно это работает, я использовал имя раздела реестра, чтобы найти параметры групповой политики TPM . Это объясняет, что означают различные значения и как они ведут себя:

Если вы включите этот параметр политики, операционная система Windows будет хранить авторизацию владельца TPM в реестре локального компьютера в соответствии с выбранным параметром аутентификации TPM.
0 = нет, 2 = делегировано, 4 = заполнено. Начиная с Windows 10 версии 1703, значением по умолчанию является 5 (фиктивная).

Я также нашел в сообщении Microsoft TPM Owner Password пароль, в котором подробно рассказывается о том, где и как хранится пароль, и как его использовать.

Для никогда не работающих систем (Windows 8.1 / 10) TPM автоматически инициализируется - это означает, что TPM автоматически активируется. Windows использует случайно сгенерированную аутентификацию блокировки для предоставления TPM, а затем уничтожает аутентификацию блокировки, даже не раскрывая ее пользователю. Однако, в зависимости от настроек объекта групповой политики, пароль владельца TPM может быть дополнительно сохранен в реестре.

Таким образом, хитрость заключается в том, чтобы установить OSManagedAuthLevel на Full и повторно инициализировать. Пользовательский интерфейс резервного копирования ключа по-прежнему отсутствует, но наличие этого раздела реестра приведет к сохранению ключа TPM в реестре. Согласно readme, программа обновления должна быть в состоянии автоматически получить ключ. Если это не так, ключ может быть извлечен из реестра.