Назад | Перейти на главную страницу

Причина блокировки TPM

У нас есть несколько устройств Surface Pro 3, развернутых с включенным BitLocker в режиме TPM + PIN. Устройства оснащены микросхемой TPM 2.0 и работают под управлением Windows 8.1 Pro.

У нас есть проблема, из-за которой пользователи иногда получают сообщение об ошибке «Слишком много неправильных попыток ввода PIN-кода» при вводе правильного PIN-кода. Затем они должны ввести ключ восстановления, чтобы продолжить процесс загрузки. Затем им необходимо вводить ключ восстановления каждый раз при загрузке устройства, пока мы вручную не сбросим блокировку TPM с помощью tpm.msc, что, очевидно, неудобно.

По какой-то причине TPM переходит в состояние блокировки, но это не похоже на повторяющиеся попытки ввода неправильного PIN-кода. Тот факт, что блокировка в конечном итоге не истекает, если вы оставите устройство работающим, также предполагает, что это произошло по какой-то другой причине, кроме достижения максимального количества неправильных попыток аутентификации. Я понимаю, что в спецификации TPM 2.0 указано, что это должно быть так, в отличие от спецификации TPM 1.2, которая оставила точное поведение на усмотрение поставщика.

Бег Get-Tpm указывает, что TPM определенно находится в заблокированном состоянии, но не предоставляет никакой информации о причине.

Кто-нибудь знает, могу ли я что-нибудь сделать, чтобы попытаться определить основную причину локаутов?

Я прочитал объяснение, что TPM не имеет доступа для записи какого-либо журнала или причины блокировки для диска, к которому он запрещает доступ. Разумно. Объяснение причины также может представлять собой брешь в безопасности.

Единственная информация, которую я смог найти в этих строках, - это количество введенных неверных паролей. Откройте командную строку PowerShell с повышенными привилегиями и введите:

Get-tpm

В отличие от обычной командной оболочки, у вас будут записи для LockoutCount и LockoutMax. Это даст вам подсчет количества введенных неверных паролей. Я уверен, что пользователи убеждены, что всегда вводят правильный пин, но я обнаружил, что обычно это недопонимание.

При этом есть МНОЖЕСТВО других причин блокировки. https://technet.microsoft.com/en-us/library/dn383583(v=ws.11).aspx В частности, "Что вызывает восстановление Bitlocker?" Все, что угодно, от вставки компакт-диска до полной разрядки аккумулятора устройства, может вызвать блокировку. Это то, что я пытаюсь решить, сочетая обучение пользователей, обучение службы поддержки и оценку того, какие параметры групповой / локальной политики следует изменить. https://technet.microsoft.com/en-us/library/jj679890(v=ws.11).aspx

В конце концов, мне удалось добиться значительного прогресса в устранении этой проблемы. Я постараюсь изо всех сил запомнить детали, но это было давно ...

К сожалению, речь шла о машинах с Windows 8, поэтому Get-Tpm командлет не возвращает информацию о счетчиках блокировки. В конце концов мне удалось собрать собственный сценарий для чтения этих счетчиков непосредственно из TPM, и, конечно же, счетчик блокировки достиг порогового значения. Это имело место, хотя мы не ввели ПИН-код неправильно.

После долгих поисков я в конце концов наткнулся на раздел в спецификации TPM 2.0, в котором описывается механизм, который почти наверняка вызывает проблему. Прежде чем я углублюсь в детали, было бы полезно немного рассказать о предыстории ... Прежде чем ОС сможет использовать TPM, она должна вызвать процедуру запуска TPM. Похоже, это происходит до отображения экрана PIN BitLocker. И наоборот, как только ОС завершит использование TPM, она должна вызвать процедуру завершения TPM. Windows, похоже, делает это во время завершения работы ОС.

Проблема возникает, когда система выключается без полного завершения работы ОС. В этом сценарии процедура выключения TPM не вызывалась до отключения питания микросхемы. В спецификации TPM 2.0 указано, что если процедура запуска TPM вызывается без предыдущего вызова процедуры завершения TPM, она должна увеличить счетчик блокировки на единицу. Эта функция существует для защиты от определенного типа атак на TPM. Таким образом, когда устройство снова включается, счетчик блокировок увеличивается на единицу, даже если пользователь вводит правильный PIN-код BitLocker.

В моем конкретном случае рассматриваемые устройства были планшетами Microsoft Surface Pro 3. Я догадывался, что пользователи удерживали кнопку питания нажатой, чтобы выключить машину, не выключая ее чисто. Обычно это не является большой проблемой, так как счетчик блокировки в конечном итоге снова уменьшится через два часа. Однако, если они делают это достаточно часто, счетчик блокировок не успевает уменьшиться. Проблема усугубляется тем фактом, что таймер, используемый для отслеживания момента уменьшения, сбрасывается, если машина выключена и включается, а это означает, что он должен быть включен непрерывно в течение двух часов, прежде чем он уменьшится. Некоторые пользователи выключают машину только на короткое время.

Surface Pro 3 поддерживает то, что Microsoft называет «Connected Standby» или «InstantGo». Это функция, которая заставляет устройство вести себя как мобильное устройство с точки зрения управления питанием. При нажатии на кнопку питания устройство переходит в режим пониженного энергопотребления, а не в обычный режим ожидания или сна. Однако мы переключили схему управления питанием на «High Performance», что привело к отключению режима Connected Standby, заставляя устройство вести себя как традиционный ПК. Думаю, это может быть одним из факторов проблемы.