¿Qué PCR podemos extender usando nuestro propio código?

2

Como hay 24 PCR en la especificación TPM 1.2. Algunos de estos PCR están reservados y no pueden extenderse por el código del usuario. A continuación se muestran los índices de PCR con su uso:

0 - CRTM, BIOS y Extensiones de Plataforma
1 - Configuración de la plataforma
2 - Código ROM de opción
3 - Configuración de la ROM opcional y datos
4 - Código IPL (Información MBR y Etapa 1 del cargador de arranque)
5 - Código de IPL y datos de configuración (para uso por el Código de IPL)
6 - Transición de estado y eventos de vigilia
7 - Reservado para uso futuro. No utilizar.
8 - Bootloader Stage 2 Part 1
9 - Bootloader Stage 2 Part 2
10 - No está en uso.
11 - No está en uso.
12 - Argumentos de la línea de comandos del gestor de arranque
13 - Archivos verificados a través de la rutina de verificación de archivos
14 - Archivos que están realmente cargados (por ejemplo, kernel de Linux, initrd, módulos ...)
15 - No está en uso.
16 - No está en uso.
17 - DRTM
18 a 23. No está en uso.

¿Qué entendí que un usuario puede extender todos los PCR que no están en uso? ¿Es esto correcto? Hice esta pregunta porque escribí mi propio código para extender los PCR (siguiendo enlace ) y resulta que puedo extender todas las PCR, excepto de la PCR 17 a la PCR 22. Y entendí que solo puedo extender algunas y, sobre todo, no puedo jugar con las más bajas, desde la PCR 0 a la PCR 7.

¡Su ayuda es muy apreciada! ¡Puedo enviar el código también si es necesario!

    
pregunta Geek 30.10.2013 - 15:55
fuente

2 respuestas

-2

Depende de la localidad en la que estemos ... hay 6 localidades. Yo estaba en la localidad 0.

    
respondido por el Geek 04.11.2013 - 19:11
fuente
1

Historia corta

Puedes extenderlos todos, pero depende del contexto. Para entender lo que quiero decir por contexto, necesitamos hablar sobre el concepto de Localidades. Brevemente, puedes ver esto como una forma de dominio de confianza. Por defecto, estás en la Localidad 0.

No veo por qué tendría que hacer esto, pero para extender todos los PCR, debe estar en la Localidad 2. En otras palabras, debe cargar un OS / MLE confiable (un SO en el que desea confiar) utilizando DRTM.

Historia larga

SRTM, es decir, los PCR 0-15 no se pueden reiniciar (excepto en el arranque), pero siempre se pueden extender (se requiere la localidad 0, que, como dije anteriormente, es la localidad predeterminada).

Para DRTM, es decir, 17-22, es un poco más complejo. Lo describiré un poco, pero la matriz real que debe ver es correcta aquí la sección 7.2 .

  • La localidad 4 está controlada por hardware / microcódigo para que realmente puedas verla como la raíz de DRTM / TXT. Se utiliza para restablecer los PCR 17-20 y enviar la medición de SINIT ACM (Módulo de código autenticado) en la PCR 17. No ejecuta el código en la localidad 4, solo lo hacen las instrucciones TXT, pero puede iniciar este proceso utilizando el SENTER instrucciones.
  • La localidad 3 se refiere a SINIT ACM, que es responsable de validar algunas configuraciones de seguridad que se refieren a DRTM (tablas ACPI / DMAR, por ejemplo, para la protección DMA), y enviar la medición del entorno de lanzamiento medido (MLE) en la PCR 18. Nuevamente, no tiene acceso a esta localidad, solo SINIT (código de Intel).
  • La localidad 2 es para el tiempo de ejecución del MLE. Puede restablecer 20-22 y extender todos los PCR. Aquí es donde puede ejecutar su código (independientemente de lo que haya decidido que sea su sistema operativo de confianza).
  • La localidad 1 es un propósito general para el MLE.

Como puede ver, el DRTM utiliza los diferentes niveles de Localidad para crear algún tipo de niveles de confianza en etapas.

    
respondido por el northox 03.04.2014 - 17:35
fuente

Lea otras preguntas en las etiquetas