Основы доверенного платформенного модуля
В этой статье приводится описание компонентов доверенного платформенного модуля (TPM 1.2 и TPM 2.0), а также объясняется, как они используются для устранения атак словаря.
TPM — это микрочип, предназначенный для предоставления базовых функций, связанных с безопасностью, в основном с использованием ключей шифрования. TPM устанавливается на системной плате компьютера и взаимодействует с остальной частью системы с помощью аппаратной шины.
Устройства, включающие TPM, могут создавать криптографические ключи и шифровать их, чтобы ключи можно было расшифровать только с помощью доверенного платформенного модуля. Этот процесс, часто называемый "оболочкой" или "привязкой" ключа, может помочь защитить ключ от раскрытия. Каждый TPM имеет первичный ключ-оболочку, называемый корневым ключом хранилища, который хранится в самом TPM. Закрытая часть корневого ключа хранилища или ключа подтверждения, созданная в TPM, никогда не предоставляется другим компонентам, программному обеспечению, процессу или пользователю.
Можно указать, можно ли переносить ключи шифрования, создаваемые доверенным платформенный платформой. Если указать, что они могут быть перенесены, общедоступные и закрытые части ключа могут быть предоставлены другим компонентам, программному обеспечению, процессам или пользователям. Если указать, что ключи шифрования не могут быть перенесены, закрытая часть ключа никогда не будет предоставляться за пределами доверенного платформенного модуля.
Устройства, включающие TPM, также могут создавать ключи, упакованные и привязанные к определенным измерениям платформы. Этот тип ключа можно распаковать только в том случае, если эти показатели платформы имеют те же значения, что и при создании ключа. Этот процесс называется запечатыванием ключа для доверенного платформенного модуля. Расшифровка ключа называется распаковки. TPM также может запечатывать и незапечатанные данные, созданные за пределами доверенного платформенного модуля. С помощью запечатанных ключей и программного обеспечения, таких как шифрование диска BitLocker, данные можно заблокировать до тех пор, пока не будут выполнены определенные условия оборудования или программного обеспечения.
При использовании доверенного платформенного модуля закрытые части пар ключей хранятся отдельно от памяти, управляемой операционной системой. Ключи могут быть запечатаны в TPM, а определенные гарантии состояния системы (гарантии, определяющие надежность системы) могут быть сделаны до того, как ключи будут распечатаны и освобождены для использования. TPM использует собственное внутреннее встроенное ПО и логические каналы для обработки инструкций. Таким образом, он не зависит от операционной системы и не подвергается уязвимостям, которые могут существовать в операционной системе или программном обеспечении приложений.
- Сведения о том, какие версии Windows поддерживают версии доверенного платформенного модуля, см. в статье Общие сведения о технологии доверенного платформенного модуля.
- Дополнительные сведения о том, какими службами доверенного платформенного платформенного модуля можно централизованно управлять с помощью параметров групповой политики, см. в разделе Параметры групповой политики доверенного платформенного модуля.
Функции, доступные в версиях, определяются в спецификациях доверенной вычислительной группой (TCG). Дополнительные сведения см. на странице Модуль доверенной платформы на веб-сайте группы доверенных вычислений.
В следующих разделах представлен обзор технологий, поддерживающих TPM.
- Измеряемая загрузка с поддержкой аттестации
- Виртуальная смарт-карта на основе доверенного платформенного модуля
- Хранилище сертификатов на основе доверенного платформенного модуля
- Командлеты доверенного платформенного платформенного модуля
- Интерфейс физического присутствия
- Состояния и инициализация TPM 1.2
- Ключи подтверждения
- Аттестация ключей доверенного платформенного модуля
- Защита от молотка
Измеряемая загрузка с поддержкой аттестации
Функция измеряемой загрузки предоставляет программное обеспечение для защиты от вредоносных программ с доверенным (устойчивым к спуфингам и незаконному изменению) журналом всех компонентов загрузки. Антивредоносное программное обеспечение может использовать журнал, чтобы определить, являются ли компоненты, запущенные до него, надежными или заражены вредоносными программами. Он также может отправлять журналы измеряемой загрузки на удаленный сервер для оценки. Удаленный сервер может начать действия по исправлению, взаимодействуя с программным обеспечением на клиенте или с помощью внеполосных механизмов, при необходимости.
Виртуальная смарт-карта на основе доверенного платформенного модуля
Warning
Ключи безопасности Windows Hello для бизнеса и FIDO2 — это современные двухфакторные методы проверки подлинности для Windows. Клиентам, использующим виртуальные смарт-карты, рекомендуется перейти на Windows Hello для бизнеса или FIDO2. Для новых установок Windows рекомендуется использовать ключи безопасности Windows Hello для бизнеса или FIDO2.
Виртуальная смарт-карта эмулирует функциональные возможности традиционных смарт-карт. Виртуальные смарт-карты используют микросхему доверенного платформенного модуля, а не отдельную физическую смарт-карту и средство чтения. Это значительно снижает затраты на управление и развертывание смарт-карт на предприятии. Для конечного пользователя виртуальная смарт-карта всегда доступна на устройстве. Если пользователю нужно использовать несколько устройств, пользователю должна быть выдана виртуальная смарт-карта для каждого устройства. На компьютере, совместно используемом несколькими пользователями, может размещаться несколько виртуальных смарт-карт, по одной для каждого пользователя.
Хранилище сертификатов на основе доверенного платформенного модуля
TPM защищает сертификаты и ключи RSA. Поставщик хранилища ключей доверенного платформенного модуля (KSP) обеспечивает простое и удобное использование доверенного платформенного модуля для надежной защиты закрытых ключей. KSP доверенного платформенного модуля создает ключи, когда организация регистрируется для получения сертификатов. TPM также защищает сертификаты, импортированные из внешнего источника. Сертификаты на основе доверенного платформенного модуля — это стандартные сертификаты. Сертификат никогда не может покинуть доверенный платформенный модуль, из которого создаются ключи. TPM также можно использовать для операций с шифрованием через API шифрования: следующее поколение (CNG).
Командлеты доверенного платформенного платформенного модуля
Можно управлять доверенным платформенным модулем с помощью Windows PowerShell. Дополнительные сведения см. в статье Командлеты доверенного платформенного модуля в Windows PowerShell.
Интерфейс физического присутствия
Для TPM 1.2 спецификации TCG для TPM требуют физического присутствия (как правило, нажатие клавиши) для включения доверенного платформенного модуля, его выключения или очистки. Эти действия обычно нельзя автоматизировать с помощью скриптов или других средств автоматизации, если только их не предоставляет отдельный изготовитель оборудования.
Состояния и инициализация TPM 1.2
TPM 1.2 имеет несколько возможных состояний. Windows автоматически инициализирует TPM, что приводит его к включенной, активированной и принадлежащей ему состоянию.
Ключи подтверждения
Доверенное приложение может использовать TPM только в том случае, если TPM содержит ключ подтверждения, который является парой ключей RSA. Закрытая половина пары ключей хранится внутри доверенного платформенного модуля, и она никогда не отображается и не доступна за пределами доверенного платформенного модуля.
Аттестация ключей
Аттестация ключей доверенного платформенного модуля позволяет центру сертификации проверить, что закрытый ключ защищен доверенным модулем и что доверенный платформенный модуль является доверенным центром сертификации. Ключи подтверждения, проверенные действительными, используются для привязки удостоверения пользователя к устройству. Сертификат пользователя с ключом, протестированным доверенным платформенный модуль, обеспечивает более высокий уровень безопасности, резервную копию которых обеспечивают неисполнимость, защита от молотка и изоляция ключей, предоставляемых доверенным платформенный платформенный модуль.
Защита от молотка
Когда TPM обрабатывает команду, он делает это в защищенной среде. Например, выделенный микро-контроллер на дискретной микросхеме или специальный аппаратный режим на основном ЦП. TPM используется для создания криптографического ключа, который не раскрывается за пределами доверенного платформенного модуля. Он используется в TPM после предоставления правильного значения авторизации.
TTPM имеют защиту от ударов, которая предназначена для предотвращения атак методом подбора или более сложных атак словаря, которые пытаются определить значения авторизации для использования ключа. Основной подход заключается в том, чтобы доверенный платформенный модуль разрешал только ограниченное количество сбоев авторизации, прежде чем он предотвратит больше попыток использования ключей и блокировок. Предоставление количества сбоев для отдельных ключей технически нецелесообразно, поэтому TTPM имеют глобальную блокировку при слишком большом количестве сбоев авторизации.
Так как TPM могут использовать многие сущности, один успех авторизации не может сбросить защиту TPM от ударов. Это не позволит злоумышленнику создать ключ с известным значением авторизации, а затем использовать его для сброса защиты доверенного платформенного модуля. TPM предназначены для того, чтобы забыть о сбоях авторизации по истечении определенного периода времени, чтобы TPM не вошел в состояние блокировки без необходимости. Пароль владельца доверенного платформенного модуля можно использовать для сброса логики блокировки доверенного платформенного модуля.
Защита от молотка TPM 2.0
TPM 2.0 имеет четко определенное поведение защиты от молотка. Это в отличие от TPM 1.2, для которого защита от молотков была реализована производителем, и логика была широко различается в отрасли.
Для систем с доверенным платформенный модуль 2.0 настраивается Windows для блокировки после 32 сбоев авторизации и забывает об одном сбое авторизации каждые 10 минут. Это означает, что пользователь может быстро попытаться использовать ключ с неправильным значением авторизации 32 раза. Для каждой из 32 попыток TPM записывает правильность значения авторизации. Это непреднамеренно приводит к тому, что TPM переходит в состояние блокировки после 32 неудачных попыток.
Попытки использовать ключ со значением авторизации в течение следующих 10 минут не возвращают успеха или сбоя. Вместо этого ответ указывает, что доверенный платформенный модуль заблокирован. Через 10 минут один сбой авторизации забудется, а число сбоев авторизации, запоминаемых доверенным платформенный платформой, снижается до 31. TPM выходит из заблокированного состояния и возвращается к нормальной работе. При правильном значении авторизации ключи можно использовать обычно, если в течение следующих 10 минут не произойдет сбоев авторизации. Если истекает период в 320 минут без сбоев авторизации, доверенный платформенный модуль не запоминает сбои авторизации и 32 неудачные попытки могут произойти снова.
Windows не требует, чтобы системы TPM 2.0 забывали о сбоях авторизации, когда система полностью выключена или когда система в режиме гибернации. Windows требует, чтобы ошибки авторизации забывались, когда система работает в обычном режиме, в спящем режиме или в состоянии низкого энергопотребления, отличном от выключения. Если система Windows с доверенным платформенный модуль 2.0 заблокирована, доверенный платформенный модуль покидает режим блокировки, если система остается включенной в течение 10 минут.
Защиту от молотка для TPM 2.0 можно немедленно полностью сбросить, отправив команду блокировки сброса доверенному платформенного модуля и указав пароль владельца доверенного платформенного модуля. По умолчанию Windows автоматически подготавливает TPM 2.0 и сохраняет пароль владельца доверенного платформенного модуля для использования системными администраторами.
В некоторых реализациях значение авторизации владельца доверенного платформенного модуля хранится централизованно в Active Directory, а не в локальной системе. Администратор может выполнить и tpm.msc
сбросить время блокировки доверенного платформенного модуля. Если пароль владельца доверенного платформенного модуля хранится локально, он используется для сброса времени блокировки. Если пароль владельца доверенного платформенного модуля недоступен в локальной системе, администратор должен указать его. Если администратор пытается сбросить состояние блокировки доверенного платформенного модуля с неправильным паролем владельца доверенного платформенного модуля, доверенный платформенный модуль не разрешает другую попытку сброса состояния блокировки в течение 24 часов.
TPM 2.0 позволяет создавать некоторые ключи без связанного с ними значения авторизации. Эти ключи можно использовать, когда доверенный платформенный модуль заблокирован. Например, BitLocker с конфигурацией только для доверенного платформенного модуля по умолчанию может использовать ключ в TPM для запуска Windows, даже если доверенный платформенный модуль заблокирован.
Обоснование значений по умолчанию
Изначально BitLocker допускал от 4 до 20 символов для ПИН-кода. Windows Hello имеет собственный ПИН-код для входа, который может содержать от 4 до 127 символов. BitLocker и Windows Hello используют TPM для предотвращения атак методом подбора ПИН-кода.
Windows 10 версии 1607 и более ранних использовали параметры защиты от атак в словаре. Параметры защиты от атак в словаре позволяют сбалансировать потребности безопасности с удобством использования. Например, если BitLocker используется с конфигурацией доверенного платформенного модуля + ПИН-код, количество предположений ПИН-кода со временем ограничено. TPM 2.0 в этом примере может быть настроен так, чтобы разрешить только 32 угадывание ПИН-кода сразу, а затем только еще одну догадку каждые два часа. Это не более 4415 догадок в год. Если ПИН-код имеет четыре цифры, все возможные сочетания ПИН-кода 9999 можно попытаться выполнить через чуть более двух лет.
Начиная с Windows 10 версии 1703 минимальная длина ПИН-кода BitLocker была увеличена до шести символов, чтобы лучше соответствовать другим функциям Windows, использующему TPM 2.0, включая Windows Hello. Для увеличения длины ПИН-кода требуется большее количество догадок для злоумышленника. Таким образом, длительность блокировки между каждой догадкой была сокращена, чтобы позволить законным пользователям повторить неудачную попытку раньше при сохранении аналогичного уровня защиты. Если необходимо использовать устаревшие параметры для порогового значения блокировки и времени восстановления, убедитесь, что объект групповой политики включен, и настройте систему на использование устаревших параметров защиты от атак словаря для доверенного платформенного модуля 2.0.
Смарт-карты на основе доверенного платформенного модуля
Смарт-карту на основе доверенного платформенного модуля Windows, которая является виртуальной смарт-картой, можно настроить так, чтобы разрешить вход в систему. В отличие от физических смарт-карт, в процессе входа используется ключ на основе доверенного платформенного модуля со значением авторизации. В следующем списке показаны преимущества виртуальных смарт-карт.
- Физические смарт-карты могут применять блокировку только для ПИН-кода физической смарт-карты, и они могут сбросить блокировку после ввода правильного ПИН-кода. При использовании виртуальной смарт-карты защита доверенного платформенного модуля не сбрасывается после успешной проверки подлинности. Допустимое количество сбоев авторизации до блокировки доверенного платформенного модуля включает множество факторов.
- Производители оборудования и разработчики программного обеспечения могут использовать функции безопасности доверенного платформенного модуля в соответствии со своими требованиями.
- Цель выбора 32 сбоев в качестве порогового значения блокировки заключается в том, чтобы пользователи не блокируют доверенный платформенный модуль (даже если они учатся вводить новые пароли или если они часто блокируют и разблокируют свои компьютеры). Если пользователи блокируют TPM, они должны подождать 10 минут или использовать другие учетные данные для входа, такие как имя пользователя и пароль.