We assume that this mechanism is used over a secure (e.g.,
SSL-authenticated and protected) connection to guarantee authenticity
and confidentiality requirements. Fig. 3 depicts the
integrity challenge protocol used by the challenging party to
securely validate integrity claims of the attesting system
. In
steps 1 and 2,
creates a non-predictable 160bit random
and
sends it in a challenge request message
to
. In step 3,
the attesting system loads a protected RSA key
into the TPM.
This
is encrypted with the so-called Storage Root Key (SRK), a
key known only to the TPM. The TPM specification [11] describes,
how a 2048-bit AIK is created securely inside the TPM and how the
corresponding public key
can be securely certified by a
trusted party. This trusted party certificate links the signature of
the PCR to a specific TPM chip in a specific system. Then, the
requests a
from the TPM chip that now signs the selected
(or multiple PCRs) and the
originally provided by
with the
private key
. To complete step 3, the
retrieves the
ordered list of all measurements (in our case from the kernel). Then,
responds with a challenge response message
in step 4,
including the signed aggregate and nonce in
, together with the
claimed complete measurement list
.
In step 5a, first retrieves a trusted certificate
. This AIK certificate binds the verification key
of the
to a specific system and states that the
related secret key is known only to this TPM and never exported
unprotected. Thus masquerading can be discovered by the
challenging party by comparing the unique identification of
with
the system identification given in
. This certificate
must be verified to be valid, e.g., by checking the certificate
revocation list at the trusted issuing party.
then verifies the
signature in step 5b.
In step 5c, validates the freshness of the
and thus
the freshness of the
(the measurement aggregate). Freshness is
guaranteed if the nonces match as long the
in step 2 is unique
and not predictable. As soon as
receives a nonce twice or can
predict the nonce (or predict even a small enough set into which the
nonce will fall), it can decide to replay old measurements or request
TPM-signed quotes early using predicted nonces. In both cases, the
quoted integrity measurements
might not reflect the actual system
status, but a past one. If the nonce offers insufficient security, then
the validity of the signature keys can be restricted, because the
replay window for signed aggregates is also bound to using a valid
signature key.
Validating the signature in step 5b, can detect tampering
with the TPM aggregate, because it will invalidate the signature
(assuming cryptographic properties of a digital 2048-bit signature
today, assuming the secret key is known only to the TPM, and assuming
no hardware tampering of the TPM). Tampering with the measurement list
is made visible in step 5c by walking through the measurement list
and re-computing the TPM aggregate (simulating the TPM extend
operations as described in Section 4.2) and comparing
the result with the TPM aggregate
that is included in the signed
received in step 4. If the computed aggregate matches the
signed aggregate, then the measurement list is valid and untampered,
otherwise it is invalid.