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.


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.