I am currently trying to figure out just how remote attestation for a TPM works in combination with the PCR-values.

Is it true that the PCR values are only measured on system boot and cannot be changed until after we boot the computer once again?

For instance, let's assume I am starting up my computer and all of the PCR-values I am measuring are correct and safe. If my computer were to get infected with some virus after the boot process and while it is running, or if I were to change the source code of some applications while the computer is running, remote attestation would still display the "correct" values from the boot-process and I could essentially fake being a trusted platform?

Because as far as I understood, PCR-values are only measured at the boot-process and are not dynamically updated afterwards until we boot it again.

1 Answer 1


Partially. The Trusted Computing Group have a standard for what measurements must (and optionally) take place during the boot process, eg: PCR 0 is the CRTM, PCR 1 is the measurement of the BIOS etc. PCRs 0 to 7 are set during this process. Other PCR values can be written to after boot, eg: PCR 10 is the defacto standard for Linux IMA.

The way you write to PCRs is to "extend" them: if PCR 10 contains 0xABCD and I write 0x1234 to it then PCR 10 will end up with the value hash( 0xABCD || 0x1234 ) - this prevents "faking" measurements after they've been taken.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .