06.11.2014 Views

A User Centric Security Model for Tamper-Resistant Devices

A User Centric Security Model for Tamper-Resistant Devices

A User Centric Security Model for Tamper-Resistant Devices

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

B.5 Application Acquisition and Contractual Agreement Protocol<br />

B.5 Application Acquisition and Contractual Agreement Protocol<br />

The Casper script in this section corresponds to the Application Acquisition and Contractual<br />

Agreement Protocol (STCP ACA ) described in section 6.5.<br />

#Free variables<br />

datatype Field = Gen | Exp(Field, Num) unwinding 2<br />

halfkeySP, halfkeySC, DHKey : Field<br />

datatype ACAPKeys = MAC(Field, Num, Num) unwinding 2<br />

EnKey, MaKey : ACAPKeys<br />

SC, SP, <strong>User</strong>, TSM: Agent<br />

<strong>User</strong>: tIdentities<br />

Appi: ApplicationIdentity<br />

CardID, SeudoAppi: SeudoIdentities<br />

gSC, gSP: Num<br />

nSC, nSP, nTSM: Nonce<br />

SCOS: SmartCardOS<br />

App: SPApplication<br />

f: HashFunction<br />

VKey: Agent->PublicKey<br />

SKey: Agent->SecretKey<br />

TEKey, TAKey : SessionKey<br />

InverseKeys = (VKey, SKey), (EnKey, EnKey), (MaKey, MaKey), (TEKey, TEKey),\<br />

(TAKey, TAKey)<br />

#Protocol description<br />

0. -> SP : SC<br />

[SC!=SP]<br />

1. SP -> SC : nSP, Exp(Gen,gSP)%halfkeySP<br />

[SC!=SP]<br />

<br />

2. SC -> SP : nSC, Exp(Gen,gSC)%halfkeySC<br />

[SP != SC]<br />

<br />

3. SP -> SC: nSP, nSC<br />

4. SC -> SP: {{{SCi, <strong>User</strong>i, nSP, nSC}{SKey(<strong>User</strong>)}}{EnKey}}{MaKey}<br />

5. SP -> SC : {{{SPi, Appi, nSC, nSP}{SKey(SP)}}{EnKey}}{MaKey}<br />

6. SC -> SP : {{{f(SCOS)%saveHash, SCi, <strong>User</strong>i, SPi, nSC, nSP}{SKey(SC)}}\<br />

{EnKey}}{MaKey}<br />

7. SP -> SC : {{App}{EnKey}}{MaKey}<br />

8. SC -> SP : {{{f(App), SPi, Appi, SCi, <strong>User</strong>i, nSP, nSC}{SKey(SC)}}\<br />

{EnKey}}{MaKey}<br />

9. SP -> SC : {{{saveHash%f(SCOS), f(App), SCi, <strong>User</strong>i, SPi, nSP, nSC}\<br />

{SKey(SP)}}{EnKey}}{MaKey}<br />

10. SC -> TSM : CardID, {{TSMi, SCi, <strong>User</strong>i, nSC, SeudoAppi}{TEKey}}{TAKey}<br />

11. TSM -> SC : {{{TSMi, SCi, <strong>User</strong>i, SeudoAppi, nTSM, nSC}{SKey(TSM)}}\<br />

{TEKey}}{TAKey}<br />

#Actual variables<br />

SCard, SProvider, USER, TrustedSM, MaliciousEntity: Agent<br />

ISCard, ISProvider, IUSER, ITrustedSM, IMaliciousEntity: AgentIdentities<br />

GSC, GSP, GMalicious: Num<br />

NSC, NSP, NTSM, NMalicious: Nonce<br />

246

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!