Paper 2017/639

One TPM to Bind Them All: Fixing TPM 2.0 for Provably Secure Anonymous Attestation

Jan Camenisch, Liqun Chen, Manu Drijvers, Anja Lehmann, David Novick, and Rainer Urian


The Trusted Platform Module (TPM) is an international standard for a security chip that can be used for the management of cryptographic keys and for remote attestation. The specification of the most recent TPM 2.0 interfaces for direct anonymous attestation unfortunately has a number of severe shortcomings. First of all, they do not allow for security proofs (indeed, the published proofs are incorrect). Second, they provide a Diffie-Hellman oracle w.r.t. the secret key of the TPM, weakening the security and preventing forward anonymity of attestations. Fixes to these problems have been proposed, but they create new issues: they enable a fraudulent TPM to encode information into an attestation signature, which could be used to break anonymity or to leak the secret key. Furthermore, all proposed ways to remove the Diffie-Hellman oracle either strongly limit the functionality of the TPM or would require significant changes to the TPM 2.0 interfaces. In this paper we provide a better specification of the TPM 2.0 interfaces that addresses these problems and requires only minimal changes to the current TPM 2.0 commands. We then show how to use the revised interfaces to build q-SDH- and LRSW-based anonymous attestation schemes, and prove their security. We finally discuss how to obtain other schemes addressing different use cases such as key-binding for U-Prove and e-cash.

Available format(s)
Cryptographic protocols
Publication info
Published elsewhere. MAJOR revision.IEEE Security & Privacy 2017
Direct Anonymous AttestationAnonymityPrivacyStandardsTrusted Platform Module
Contact author(s)
mdr @ zurich ibm com
2017-07-03: received
Short URL
Creative Commons Attribution


      author = {Jan Camenisch and Liqun Chen and Manu Drijvers and Anja Lehmann and David Novick and Rainer Urian},
      title = {One TPM to Bind Them All: Fixing TPM 2.0 for Provably Secure Anonymous Attestation},
      howpublished = {Cryptology ePrint Archive, Paper 2017/639},
      year = {2017},
      doi = {10.1109/SP.2017.22},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.