51
A Formal Analysis of Authentication in the TPM Stéphanie Delaune 1 , Steve Kremer 1 , Mark D. Ryan 2 , and Graham Steel 1 1 LSV, ENS Cachan & CNRS & INRIA Saclay Île-de-France, France 2 School of Computer Science, University of Birmingham, UK Thursday, September 30th, 2010 S. Delaune (LSV) Analysis of the TPM 30/09/2010 1 / 25

A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

A Formal Analysis of Authentication in the TPM

Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,and Graham Steel1

1 LSV, ENS Cachan & CNRS & INRIA Saclay Île-de-France, France2 School of Computer Science, University of Birmingham, UK

Thursday, September 30th, 2010

S. Delaune (LSV) Analysis of the TPM 30/09/2010 1 / 25

Page 2: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

TPM - What is it?

Trusted Platform Module

Hardware chip designed to enable commoditycomputers to achieve greater levels of securitythan is possible in software alone.

S. Delaune (LSV) Analysis of the TPM 30/09/2010 2 / 25

Page 3: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

TPM - What is it?

Trusted Platform Module

Hardware chip designed to enable commoditycomputers to achieve greater levels of securitythan is possible in software alone.

more than 200 millions currently in existence (mostly in laptops)−→ already used by some applications (e.g. Disk encryption)

specified by the Trusted Computing Group−→ more than 700 pages of specification

http://www.trustedcomputinggroup.org

S. Delaune (LSV) Analysis of the TPM 30/09/2010 2 / 25

Page 4: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

TPM functionality

Secure storage:

TPM stores keys and other sensitive data in its shielded memory

A user can store content that is encrypted by keys only available tothe TPM.

S. Delaune (LSV) Analysis of the TPM 30/09/2010 3 / 25

Page 5: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

TPM functionality

Secure storage:

TPM stores keys and other sensitive data in its shielded memory

A user can store content that is encrypted by keys only available tothe TPM.

Platform authentication:

Each TPM chip has a unique and secret key

A platform can obtain keys by which it can authenticate itself reliably.

S. Delaune (LSV) Analysis of the TPM 30/09/2010 3 / 25

Page 6: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

TPM functionality

Secure storage:

TPM stores keys and other sensitive data in its shielded memory

A user can store content that is encrypted by keys only available tothe TPM.

Platform authentication:

Each TPM chip has a unique and secret key

A platform can obtain keys by which it can authenticate itself reliably.

TPM contains also some internal memory slots called PCRs.

Platform measurement and reporting: A platform can create reports of itsintegrity and configuration state that can be relied on by a remote verifier.−→ used to ensure that a PC is in a particular configuration beforestarting an application.

S. Delaune (LSV) Analysis of the TPM 30/09/2010 3 / 25

Page 7: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Our contributions

−→ formalise some commands and analyse them using an automated tool.

Formalise commands and security properties ...

we model a collection of 4 TPM commands−→ e.g. CreateWrapKey, LoadKey2, . . .

we identify security properties−→ injective agreement properties modelled as correspondenceproperties

S. Delaune (LSV) Analysis of the TPM 30/09/2010 4 / 25

Page 8: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Our contributions

−→ formalise some commands and analyse them using an automated tool.

Formalise commands and security properties ...

we model a collection of 4 TPM commands−→ e.g. CreateWrapKey, LoadKey2, . . .

we identify security properties−→ injective agreement properties modelled as correspondenceproperties

... in a way suitable to allow an automated tool to perform the analysis.

S. Delaune (LSV) Analysis of the TPM 30/09/2010 4 / 25

Page 9: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Our contributions

−→ formalise some commands and analyse them using an automated tool.

Formalise commands and security properties ...

we model a collection of 4 TPM commands−→ e.g. CreateWrapKey, LoadKey2, . . .

we identify security properties−→ injective agreement properties modelled as correspondenceproperties

... in a way suitable to allow an automated tool to perform the analysis.

Analysis (with the ProVerif tool)

we rediscover some known attacks and new variations of them

we propose some fixes

S. Delaune (LSV) Analysis of the TPM 30/09/2010 4 / 25

Page 10: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Outline

1 Introduction

2 An Overview of the TPM

3 Modelling the TPM

4 Analysing the TPM with ProVerif

5 Conclusion

S. Delaune (LSV) Analysis of the TPM 30/09/2010 5 / 25

Page 11: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Outline

1 Introduction

2 An Overview of the TPM

3 Modelling the TPM

4 Analysing the TPM with ProVerif

5 Conclusion

S. Delaune (LSV) Analysis of the TPM 30/09/2010 6 / 25

Page 12: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

TPM key hierarchy

Cryptographic key

Keys are arranged in a tree structure and stored in the TPM memory−→ Storage Root Key created by a special command

Authdata

To each TPM object or resource (e.g. keys) is associated an authdatavalue

A shared secret between the user process and the TPM−→ a password that has to be cited to use the object or resource

authdata is 20 bytes (160 bits)

S. Delaune (LSV) Analysis of the TPM 30/09/2010 7 / 25

Page 13: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Authorisation Sessions

The TPM provides two kinds of authorisation sessions:

1 Object Independent Authorisation Protocol (OIAP)

−→ can manipulate any objects, but works only for certain commands

2 Object Specific Authorisation Protocol (OSAP)

−→ it manipulates a specific object specified when the session is setup

S. Delaune (LSV) Analysis of the TPM 30/09/2010 8 / 25

Page 14: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

OIAP session

USER TPM

kh1 → [auth1, sk1, pk1]...

khk → [authk, skk, pkk]Start OIAP

S. Delaune (LSV) Analysis of the TPM 30/09/2010 9 / 25

Page 15: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

OIAP session

USER TPM

kh1 → [auth1, sk1, pk1]...

khk → [authk, skk, pkk]Start OIAP

new Ne1sh, Ne1

S. Delaune (LSV) Analysis of the TPM 30/09/2010 9 / 25

Page 16: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

OIAP session

USER TPM

kh1 → [auth1, sk1, pk1]...

khk → [authk, skk, pkk]Start OIAP

new Ne1sh, Ne1

new No1sh, kh1,No1, . . . , hmac(auth1, 〈Ne1,No1, . . .〉)

new Ne2Ne2, . . . , hmac(auth1, 〈Ne2,No1, . . .〉)

S. Delaune (LSV) Analysis of the TPM 30/09/2010 9 / 25

Page 17: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

OIAP session

USER TPM

kh1 → [auth1, sk1, pk1]...

khk → [authk, skk, pkk]Start OIAP

new Ne1sh, Ne1

new No1sh, kh1,No1, . . . , hmac(auth1, 〈Ne1,No1, . . .〉)

new Ne2Ne2, . . . , hmac(auth1, 〈Ne2,No1, . . .〉)

...new Nok

sh, khk,Nok, . . . , hmac(authk, 〈Nek,Nok, . . .〉)

...

S. Delaune (LSV) Analysis of the TPM 30/09/2010 9 / 25

Page 18: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

OSAP session

USER TPM

new NoOSAPkh→ [auth, sk, pk]Start OSAP, kh, NoOSAP

S. Delaune (LSV) Analysis of the TPM 30/09/2010 10 / 25

Page 19: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

OSAP session

USER TPM

new NoOSAPkh→ [auth, sk, pk]Start OSAP, kh, NoOSAP

new NeOSAP

new Ne1sh, NeOSAP, Ne1

S. Delaune (LSV) Analysis of the TPM 30/09/2010 10 / 25

Page 20: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

OSAP session

USER TPM

new NoOSAPkh→ [auth, sk, pk]Start OSAP, kh, NoOSAP

new NeOSAP

new Ne1sh, NeOSAP, Ne1

Computation of the OSAP shared secret

ss = hmac(auth, 〈NeOSAP,NoOSAP〉)

S. Delaune (LSV) Analysis of the TPM 30/09/2010 10 / 25

Page 21: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

OSAP session

USER TPM

new NoOSAPkh→ [auth, sk, pk]Start OSAP, kh, NoOSAP

new NeOSAP

new Ne1sh, NeOSAP, Ne1

Computation of the OSAP shared secret

ss = hmac(auth, 〈NeOSAP,NoOSAP〉)

new No1sh,No1, . . . , hmac(ss, 〈Ne1,No1, . . .〉)

new Ne2Ne2, . . . , hmac(ss, 〈Ne2,No1, . . .〉)

...

S. Delaune (LSV) Analysis of the TPM 30/09/2010 10 / 25

Page 22: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

TPM-CreateWrapKey

Goal: Create the key and returns it protected by an encryption.

S. Delaune (LSV) Analysis of the TPM 30/09/2010 11 / 25

Page 23: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

TPM-CreateWrapKey

Goal: Create the key and returns it protected by an encryption.

Description: Assuming an OSAP session has been established

USER TPM[auth, sk, pk]

S. Delaune (LSV) Analysis of the TPM 30/09/2010 11 / 25

Page 24: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

TPM-CreateWrapKey

Goal: Create the key and returns it protected by an encryption.

Description: Assuming an OSAP session has been established

USER TPM[auth, sk, pk]new No1

new newauth sh,No1, cipher, hmac(ss, 〈cwk, cipher,Ne1,No1〉)

where:

cipher = senc(newauth, hash(ss,Ne1))

S. Delaune (LSV) Analysis of the TPM 30/09/2010 11 / 25

Page 25: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

TPM-CreateWrapKey

Goal: Create the key and returns it protected by an encryption.

Description: Assuming an OSAP session has been established

USER TPM[auth, sk, pk]new No1

new newauth sh,No1, cipher, hmac(ss, 〈cwk, cipher,Ne1,No1〉)

new Ne2

new SKNe2, pk(SK),wrp, hmac(ss, 〈cwk,wrp, pk(SK),Ne2,No1〉)

where:

cipher = senc(newauth, hash(ss,Ne1))

wrp = wrap(〈SK, newauth, tpmproof〉, pk)

S. Delaune (LSV) Analysis of the TPM 30/09/2010 11 / 25

Page 26: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

TPM-CertifyKey

Goal: allow a user to obtain a certificate on a key.

S. Delaune (LSV) Analysis of the TPM 30/09/2010 12 / 25

Page 27: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

TPM-CertifyKey

Goal: allow a user to obtain a certificate on a key.

Description: Assuming two OAIP sessions have been established

USER TPMkh1 → [auth1, sk1, pk1]

kh2 → [auth2, sk2, pk2]new No1

new No2

new NN, sh1, kh1,No1, hmac(auth1, 〈cfk,N,Ne1,No1〉)

sh2, kh2,No2, hmac(auth2, 〈cfk,N,Ne2,No2〉)new Ne′1new Ne′2

certif, Ne′1, hmac(auth1, 〈cfk,N,Ne′1,No1, certif〉)

Ne′2, hmac(auth2, 〈cfk,N,Ne′2,No2, certif〉)

where:

certif = cert(pk2, sk1)

S. Delaune (LSV) Analysis of the TPM 30/09/2010 12 / 25

Page 28: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Outline

1 Introduction

2 An Overview of the TPM

3 Modelling the TPM

4 Analysing the TPM with ProVerif

5 Conclusion

S. Delaune (LSV) Analysis of the TPM 30/09/2010 13 / 25

Page 29: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

The ProVerif tool (B. Blanchet)

Available on line:

http://www.proverif.ens.fr/

Input: processes written in applied pi calculus

Characteristics

unbounded number of sessions

primitives given by an equational theory

security properties: (strong) secrecy, correspondence properties,equivalence properties

sound but not complete−→ sometimes, the tool reports some false attacks

S. Delaune (LSV) Analysis of the TPM 30/09/2010 14 / 25

Page 30: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Modelling

How to get rid of non-monotonic global state?

only one command is executed in each OIAP or OSAP session−→ the TPM imposes this restriction itself for certain command(e.g. CreateWrapKey)−→ some tools that provides software-level API’s also implement it

do not allow keys to be deleted from the memory of the TPM−→ we allow an unbounded number of keys to be loaded

S. Delaune (LSV) Analysis of the TPM 30/09/2010 15 / 25

Page 31: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Modelling

How to get rid of non-monotonic global state?

only one command is executed in each OIAP or OSAP session−→ the TPM imposes this restriction itself for certain command(e.g. CreateWrapKey)−→ some tools that provides software-level API’s also implement it

do not allow keys to be deleted from the memory of the TPM−→ we allow an unbounded number of keys to be loaded

Modelling the key table

an entry

private functions to model a lookup in the table

S. Delaune (LSV) Analysis of the TPM 30/09/2010 15 / 25

Page 32: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Modelling

How to get rid of non-monotonic global state?

only one command is executed in each OIAP or OSAP session−→ the TPM imposes this restriction itself for certain command(e.g. CreateWrapKey)−→ some tools that provides software-level API’s also implement it

do not allow keys to be deleted from the memory of the TPM−→ we allow an unbounded number of keys to be loaded

Modelling the key table

an entry handle(auth, sk)

private functions to model a lookup in the table

getAuth(handle(auth, sk)) = authgetSK(handle(auth, sk)) = sk

S. Delaune (LSV) Analysis of the TPM 30/09/2010 15 / 25

Page 33: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Modelling

How to get rid of non-monotonic global state?

only one command is executed in each OIAP or OSAP session−→ the TPM imposes this restriction itself for certain command(e.g. CreateWrapKey)−→ some tools that provides software-level API’s also implement it

do not allow keys to be deleted from the memory of the TPM−→ we allow an unbounded number of keys to be loaded

Modelling the key table

an entry handle(auth, sk)

private functions to model a lookup in the table

getAuth(handle(auth, sk)) = authgetSK(handle(auth, sk)) = sk

−→ false attacks based on the hypothesis that the attacker knowshandle(auth1, sk) and handle(auth2, sk).

S. Delaune (LSV) Analysis of the TPM 30/09/2010 15 / 25

Page 34: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Modelling

How to get rid of non-monotonic global state?

only one command is executed in each OIAP or OSAP session−→ the TPM imposes this restriction itself for certain command(e.g. CreateWrapKey)−→ some tools that provides software-level API’s also implement it

do not allow keys to be deleted from the memory of the TPM−→ we allow an unbounded number of keys to be loaded

Modelling the key table

an entry handle(auth, seed)

private functions to model a lookup in the table

getAuth(handle(auth, seed)) = authgetSK(handle(auth, seed)) = hsk(auth, seed)

S. Delaune (LSV) Analysis of the TPM 30/09/2010 15 / 25

Page 35: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Modelling Commands

Two processes for each command:

a USER process models a honest user who makes a call to the TPM

a TPM process models the TPM itself

−→ the attacker schedules honest user actions

S. Delaune (LSV) Analysis of the TPM 30/09/2010 16 / 25

Page 36: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Security Properties

secrecy of the private keys stored in the device (if their parent key isnot compromised).

S. Delaune (LSV) Analysis of the TPM 30/09/2010 17 / 25

Page 37: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Security Properties

secrecy of the private keys stored in the device (if their parent key isnot compromised).

[TPM specification Part I, p. 60]

« The design criterion of the protocols is to allow for ownership

authentication, command and parameter authentication and

prevent replay and man in the middle attacks. »

S. Delaune (LSV) Analysis of the TPM 30/09/2010 17 / 25

Page 38: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Security Properties

secrecy of the private keys stored in the device (if their parent key isnot compromised).

[TPM specification Part I, p. 60]

« The design criterion of the protocols is to allow for ownership

authentication, command and parameter authentication and

prevent replay and man in the middle attacks. »

Our interpretation:

authentication of user commands−→ intuitively ensured by the authorisation hmacs

authentication of the TPM−→ intuitively ensured by the hmacs returned by the TPM

−→ We formalise these as correspondance properties

S. Delaune (LSV) Analysis of the TPM 30/09/2010 17 / 25

Page 39: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Outline

1 Introduction

2 An Overview of the TPM

3 Modelling the TPM

4 Analysing the TPM with ProVerif

5 Conclusion

S. Delaune (LSV) Analysis of the TPM 30/09/2010 18 / 25

Page 40: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Methodology

We consider four commands:

CreateWrapKey, LoadKey, CertifyKey, and UnBind.

Step 1: each command in isolation

Configuration 1: two honest keys [auth1, sk1, pk1], [auth2, sk2, pk2]

Configuration 2: + an additional honest key [auth2, sk′

2, pk′2]

Configuration 3: + a dishonest key [authi , ski , pki]

S. Delaune (LSV) Analysis of the TPM 30/09/2010 19 / 25

Page 41: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Methodology

We consider four commands:

CreateWrapKey, LoadKey, CertifyKey, and UnBind.

Step 1: each command in isolation

Configuration 1: two honest keys [auth1, sk1, pk1], [auth2, sk2, pk2]

Configuration 2: + an additional honest key [auth2, sk′

2, pk′2]

Configuration 3: + a dishonest key [authi , ski , pki]

−→ We propose a fix version of each of this command

Step 2: the four commands together

Configuration 4: an honest key [auth, sk, pk]+ a dishonest key [authi , ski , pki ]

S. Delaune (LSV) Analysis of the TPM 30/09/2010 19 / 25

Page 42: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

CertifyKey command (1)

Configuration 1: [auth1, sk1, pk1], [auth2, sk2, pk2].

Attack: swap the two authorisation hmacs.−→ TPM sends cert(pk1, sk2) whereas the user asked for cert(pk2, sk1)

Why is this possible ?

−→ the two authorisation hmacs look very similar

hmac(auth1, 〈cfk,N,Ne1,No1〉)hmac(auth2, 〈cfk,N,Ne2,No2〉)

S. Delaune (LSV) Analysis of the TPM 30/09/2010 20 / 25

Page 43: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

CertifyKey command (1)

Configuration 1: [auth1, sk1, pk1], [auth2, sk2, pk2].

Attack: swap the two authorisation hmacs.−→ TPM sends cert(pk1, sk2) whereas the user asked for cert(pk2, sk1)

Why is this possible ?

−→ the two authorisation hmacs look very similar

hmac(auth1, 〈cfk,N,Ne1,No1〉)hmac(auth2, 〈cfk,N,Ne2,No2〉)

A possible fix:hmac(auth1, 〈cfk1,N,Ne1,No1〉)hmac(auth2, 〈cfk2,N,Ne2,No2〉)

−→ the two correspondence properties hold on Configuration 1

S. Delaune (LSV) Analysis of the TPM 30/09/2010 20 / 25

Page 44: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

CertifyKey command (2)

Configuration 2: [auth1, sk1, pk1], [auth2, sk2, pk2], [auth2, sk′

2, pk′2]

Attack: exchange the key handle [auth2, sk2, pk2] with [auth2, sk′

2, pk′2].−→ TPM sends cert(pk′2, sk1) whereas the user asked for cert(pk2, sk1).

Why is this possible?

−→ the authorisation hmacs do not depend on the key but only on theauthdata.

S. Delaune (LSV) Analysis of the TPM 30/09/2010 21 / 25

Page 45: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

CertifyKey command (2)

Configuration 2: [auth1, sk1, pk1], [auth2, sk2, pk2], [auth2, sk′

2, pk′2]

Attack: exchange the key handle [auth2, sk2, pk2] with [auth2, sk′

2, pk′2].−→ TPM sends cert(pk′2, sk1) whereas the user asked for cert(pk2, sk1).

Why is this possible?

−→ the authorisation hmacs do not depend on the key but only on theauthdata.

A possible fix: add the (digest of the) public part of the key.

hmac(auth1, 〈cfk1, pk1,N,Ne1,No1〉)hmac(auth2, 〈cfk2, pk2,N,Ne2,No2〉)

−→ the two correspondence properties now hold on Configuration 2

S. Delaune (LSV) Analysis of the TPM 30/09/2010 21 / 25

Page 46: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

CerifyKey command (3)

Configuration 3: as before + [authi , ski , pki]

Attack: replace the key to be certified by pki.

−→ TPM sends cert(pki, sk1) whereas the user asked for cert(pk2, sk1)

How is this possible?−→ The two authorisation hmacs are linked together only through thenonce N (known by the attacker).

Intercept hmac(auth2, 〈cfk2, pk2,N,Ne2,No2〉)

Send hmac(authi, 〈cfk2, pki,N,Ne2,No2〉).

S. Delaune (LSV) Analysis of the TPM 30/09/2010 22 / 25

Page 47: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

CerifyKey command (3)

Configuration 3: as before + [authi , ski , pki]

Attack: replace the key to be certified by pki.

−→ TPM sends cert(pki, sk1) whereas the user asked for cert(pk2, sk1)

How is this possible?−→ The two authorisation hmacs are linked together only through thenonce N (known by the attacker).

Intercept hmac(auth2, 〈cfk2, pk2,N,Ne2,No2〉)

Send hmac(authi, 〈cfk2, pki,N,Ne2,No2〉).

A possible fix:

hmac(auth1, 〈cfk1, pk1, pk2,N,Ne1,No1〉)hmac(auth2, 〈cfk2, pk2, pk1,N,Ne2,No2〉)

−→ the two correspondence properties now hold on Configuration 3S. Delaune (LSV) Analysis of the TPM 30/09/2010 22 / 25

Page 48: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

The 4 commands together

Configuration 4: an honest key [auth, sk, pk]+ a dishonest key [authi , ski , pki ]

−→ we do not need to add more since the user can now create his ownkey and the attacker also.

Results:

ProVerif establishes the 8 correspondences properties. It fails to prove theinjective version of one of them (false attack).

S. Delaune (LSV) Analysis of the TPM 30/09/2010 23 / 25

Page 49: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

The 4 commands together

Configuration 4: an honest key [auth, sk, pk]+ a dishonest key [authi , ski , pki ]

−→ we do not need to add more since the user can now create his ownkey and the attacker also.

Results:

ProVerif establishes the 8 correspondences properties. It fails to prove theinjective version of one of them (false attack).

All the files for our experiments are available on line at:

http://www.lsv.ens-cachan.fr/~delaune/TPM/.

S. Delaune (LSV) Analysis of the TPM 30/09/2010 23 / 25

Page 50: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Outline

1 Introduction

2 An Overview of the TPM

3 Modelling the TPM

4 Analysing the TPM with ProVerif

5 Conclusion

S. Delaune (LSV) Analysis of the TPM 30/09/2010 24 / 25

Page 51: A Formal Analysis of Authentication in the TPMdelaune/transparents/Annee2010/gdt-tpm.pdfA Formal Analysis of Authentication in the TPM Stéphanie Delaune1, Steve Kremer1, Mark D. Ryan2,

Conclusion

Conclusion

We formalise 4 commands of the TPM and their security properties−→ injective agreement properties as correspondence properties

Analysis with the ProVerif tool−→ we rediscovered some attacks−→ we propose some fixes

We foresee extending our model to deal with:

Key migration commands;

Platform Configuration Registers (PCRs);

. . .

S. Delaune (LSV) Analysis of the TPM 30/09/2010 25 / 25