7

I am dealing with the TPM right now and do not get why there is a need for an extra signing key. Instead one could use one of the Attestation Identity Keys (AIKs) for signing as well?! Using different keys shall be good practice but I would like to get a more detailed view on that issue.

I figured out that one advantage is that the signing key can be migratable. So changing the plattform/tpm would not necessarily end in revoking the created certificates.

Are there further reasons for a separate signing key?

onb
  • 73
  • 1
  • 6

1 Answers1

9

AIKs are only allowed to perform two signature-based operations:

  • TPM_Quote, which generates a signed statement of the state of the PCRs using an AIK; this is the operation used in remote attestation.
  • TPM_CertifyKey, which generates a signed statement that another key (not the AIK) is in the TPM's storage hierarchy and is non-migratable. (Obviously, the key being so certified must have these properties.)

In particular, AIKs cannot be used in TPM_Sign, meaning it is impossible to sign arbitrary data. Otherwise, it would be possible to generate a fake quote, and remote attestation would be broken.

(Conversely, TPM_Quote must use an AIK; it cannot use a signing key.)

TL;DR: if you need a key to sign arbitrary data, use a signing key. If you're doing remote attestation, use an AIK.

  • "...If you are doing remote attestation, use an AIK." More generally, if you are doing identity based operations (of which remote attestation is one), use the AIK. Indeed, the 'I' stands for Identity. – Wilbur Whateley Apr 14 '16 at 00:40
  • Yes, ish: because you can't use an AIK to sign arbitrary data, it's not possible to use it as an SSL identity. You instead need to do a TPM_CertifyKey on a signing key, and use that as your SSL identity. – Justin King-Lacroix Apr 29 '16 at 12:41
  • Yes, my comment should amended to read "if you are doing **TPM based platform** identity operations...use the AIK." Didn't mean "identity in any situation". – Wilbur Whateley May 02 '16 at 23:37