Переключение банков PCR на устройства TPM 2.0

Реестр конфигурации платформы (PCR) — участок памяти в доверенном платформенном модуле, который имеет некоторые уникальные свойства. Размер значения, которое можно храниться в PCR, определяется размером дайджеста, сформированного связанным алгоритмом хэширования. В реестре конфигурации платформы SHA-1 можно сохранить 20 байт (это размер дайджеста SHA-1). Несколько PCR, относящихся к одному алгоритму хэширования, называют банком PCR.

Для сохранения нового значения в PCR, существующее значение обобщается с новым значением следующим образом:

PCR[N] = HASHalg( PCR[N] || ArgumentOfExtend )

Существующее значение объединяется с аргументом операции расширения TPM. Затем созданное объединение используется в качестве входных данных для соответствующего алгоритма хэширования, который вычисляет дайджест ввода. Этот вычисленный дайджест становится новым значением PCR.

Профиль TPM клиентской платформы ПК TCG для доверенного платформенного модуля 2.0 определяет включение хотя бы одного банка PCR с 24 регистрами. Единственный способ сбросить первые 16 PCR — сбросить модуль TPM. Благодаря такому ограничению значение этих PCR можно изменить только с помощью операции расширения TPM.

Некоторые PCR TPM используются, как контрольные суммы событий журнала. События журнала обобщаются в доверенном платформенном модуле по мере возникновения событий. Позже аудитор сможет проверить журналы путем расчета предполагаемых значений PCR из журнала и их сравнения со значениями PCR модуля TPM. Так как первые 16 PCR модуля TPM нельзя произвольно изменить, соответствие между предполагаемым значением PCR в этом диапазоне и действительным значением PCR модуля TPM обеспечивает уверенность в том, что журнал не изменен.

Каким образом Windows 10 использует PCR?

Для привязки использования ключа на основе TPM к определенному состоянию компьютера ключ может быть запечатан в предполагаемом наборе значений PCR. Например, PCR от 0 до 7 имеют четко определенное значение после загрузки — когда операционная система загружена. При изменении аппаратного или микропрограммного обеспечения либо загрузчика машины изменение может обнаружиться в значениях PCR. Windows 10 использует эту возможность, чтобы обеспечить доступность криптографических ключей только в определенное время при загрузке. Например, клавишу BitLocker можно использовать в определенной точке загрузки, но не до или после.

Важно отметить, что такая привязка к значениям PCR также содержит алгоритм хэширования, используемый для PCR. Например, ключ можно привязать к определенному значению SHA-1 PCR[12] при использовании банков SHA-256 PCR, даже с той же конфигурацией системы, в противном случае значения PCR не совпадают.

Что происходит при переключении банков PCR?

При переключении банков PCR изменяется алгоритм, используемый для расчета хэшированных значений, сохраненных в PCR во время операций расширения. Для одного ввода каждый хэш-алгоритм возвратит другую криптографическую подпись для тех же вводов.

В результате, если используемый в настоящее время банк PCR переключен, все ключи, привязанные к предыдущим значениям PCR, перестают работать. Например, при наличии ключа, привязаного к значению SHA-1 PCR[12], и изменении банков PCR на SHA-256, банки не будут соответствовать, и этот ключ нельзя использовать. Защита ключа BitLocker обеспечивается с помощью банков PCR, и система Windows 10 не сможет его раскрыть, если банки PCR были переключены при включенном BitLocker.

Что можно сделать для переключения PCR при активном BitLocker?

Перед переключением банков PCR необходимо приостановить или отключить BitLocker или использовать готовность ключа к восстановлению. Рекомендации по переключению банков PCR на ПК необходимо получить у своего поставщика OEM или UEFI.

 

 

Показ: