Bancos de PCR en dispositivos TPM 2.0

Para obtener pasos sobre cómo cambiar los bancos de PCR en dispositivos TPM 2.0 en el equipo, debe ponerse en contacto con el proveedor de OEM o UEFI. En este artículo se proporciona información general sobre lo que ocurre al cambiar los bancos de PCR en dispositivos TPM 2.0.

Un registro de configuración de plataforma (PCR) es una ubicación de memoria en el TPM que tiene algunas propiedades únicas. El tamaño del valor que se puede almacenar en un PCR viene determinado por el tamaño de un resumen generado por un algoritmo hash asociado. Un PCR SHA-1 puede almacenar 20 bytes, el tamaño de un resumen SHA-1. Varios PCR asociados con el mismo algoritmo hash se conocen como banco de PCR.

Para almacenar un nuevo valor en un PCR, el valor existente se extiende con un nuevo valor como se indica a continuación: PCR[N] = HASHalg( PCR[N] || ArgumentOfExtend)

El valor existente se concatena con el argumento de la operación de extensión de TPM. A continuación, la concatenación resultante se usa como entrada para el algoritmo hash asociado, que calcula un resumen de la entrada. El resumen calculado se convierte en el nuevo valor del PCR.

La especificación del perfil tpm de la plataforma de cliente de PC DE TCG define la inclusión de al menos un banco de PCR con 24 registros. La única manera de restablecer los primeros 16 PCR es restablecer el TPM en sí. Esta restricción ayuda a garantizar que el valor de esos PCR solo se puede modificar mediante la operación de extensión de TPM.

Algunos PCR de TPM se usan como sumas de comprobación de eventos de registro. Los eventos de registro se extienden en el TPM a medida que se producen los eventos. Más adelante, un auditor puede validar los registros calculando los valores de PCR esperados del registro y comparándolos con los valores de PCR del TPM. Dado que los primeros 16 PCR de TPM no se pueden modificar arbitrariamente, una coincidencia entre un valor de PCR esperado en ese intervalo y el valor de PCR de TPM real proporciona la garantía de un registro sin modificar.

¿Cómo usa Windows los PCR?

Para enlazar el uso de una clave basada en TPM a un estado determinado del dispositivo, la clave se puede sellar a un conjunto esperado de valores de PCR. Por ejemplo, los PCR de 0 a 7 tienen un valor bien definido después del proceso de arranque, cuando se carga el sistema operativo. Cuando cambia el hardware, el firmware o el cargador de arranque de la máquina, el cambio se puede detectar en los valores de PCR. Windows usa esta funcionalidad para que ciertas claves criptográficas solo estén disponibles en determinados momentos durante el proceso de arranque. Por ejemplo, la clave de BitLocker se puede usar en un punto determinado del arranque, pero no antes ni después.

Es importante tener en cuenta que este enlace a los valores de PCR también incluye el algoritmo hash usado para el PCR. Por ejemplo, una clave se puede enlazar a un valor específico de SHA-1 PCR[12], si se usa el banco DE PCR SHA-256, incluso con la misma configuración del sistema. De lo contrario, los valores de PCR no coincidirán.

¿Qué ocurre cuando se cambian los bancos de PCR?

Cuando se cambian los bancos de PCR, se cambia el algoritmo usado para calcular los valores hash almacenados en los PCR durante las operaciones de extensión. Cada algoritmo hash devolverá una firma criptográfica diferente para las mismas entradas.

Como resultado, si se cambia el banco de PCR utilizado actualmente, ya no funcionarán todas las claves enlazadas a los valores de PCR anteriores. Por ejemplo, si tuviera una clave enlazada al valor SHA-1 de PCR[12] y posteriormente cambiara el banco pcr a SHA-256, los bancos no coincidirían y no podría usar esa clave. La clave de BitLocker se protege mediante los bancos de PCR y Windows no podrá desanclarla si los bancos de PCR se cambian mientras BitLocker está habilitado.

¿Qué puedo hacer para cambiar los PCR cuando BitLocker ya está activo?

Antes de cambiar los bancos de PCR, debe suspender o deshabilitar BitLocker o tener la clave de recuperación lista. Para obtener pasos sobre cómo cambiar los bancos de PCR en el equipo, póngase en contacto con su proveedor de OEM o UEFI.

¿Cómo puedo identificar qué banco de PCR se está usando?

Puede configurar un TPM para tener varios bancos de PCR activos. Cuando el BIOS realiza mediciones, lo hace en todos los bancos de PCR activos, en función de su capacidad para realizar estas mediciones. El BIOS puede optar por desactivar los bancos de PCR que no admite o limita los bancos de PCR que no admite mediante la extensión de un separador. El siguiente valor del Registro identifica qué bancos de PCR están activos:

  • Clave del Registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\IntegrityServices
  • DWORD: TPMActivePCRBanks
  • Define qué bancos de PCR están activos actualmente. Este valor debe interpretarse como un mapa de bits para el que los bits se definen en la tabla 21 del Registro de algoritmos TCG de la revisión 1.27.

Windows comprueba qué bancos de PCR están activos y admitidos por el BIOS. Windows también comprueba si el registro de arranque medido admite medidas para todos los bancos de PCR activos. Windows preferirá el uso del banco SHA-256 para las mediciones y volverá al banco DE PCR SHA1 si no se cumple una de las condiciones previas.

Puede identificar qué banco pcr usa actualmente Windows examinando el Registro:

  • Clave del Registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\IntegrityServices
  • DWORD: TPMDigestAlgID
  • Id. de algoritmo del banco de PCR que Windows usa actualmente. Este valor representa un identificador de algoritmo tal como se define en la tabla 3 de revisión 1.27 del Registro de algoritmos TCG .

Windows solo usa un banco de PCR para continuar con las medidas de arranque. Todos los demás bancos de PCR activos se ampliarán con un separador para indicar que Windows no los usa y las medidas que parecen ser de Windows no deben ser de confianza.