Download presentation
Presentation is loading. Please wait.
Published byMaximilian Stafford Modified over 9 years ago
1
Analysis of a Fair Exchange Protocol Vitaly Shmatikov John Mitchell Stanford University
2
Agreement in Hostile Environment l Cannot trust the communication channel l Cannot trust the other party in the protocol l Trusted third party may exist n Last resort: use only if something goes wrong
3
Contract Signing l Both parties want to sign the contract l Neither wants to commit first Immunity deal
4
Fairness If A cannot obtain a contract, then B should not be able to obtain a contract, either (and vice versa) Example (Alice buys a house from Bob) If Alice cannot obtain a deed for the property, Bob should not be able to collect Alice’s money
5
Accountability If trusted party T misbehaves, then honest party should be able to prove T’s misbehavior Example (Alice buys a house from Bob) If escrow service gives Bob Alice’s money without giving Alice the deed, Alice should be able to prove to a judge that escrow service is cheating
6
Formal Protocol Analysis Intruder Model Analysis Tool Formal Protocol Informal Protocol Description Gee whiz. Looks OK to me.
7
Mur [Dill et al.] l Describe finite-state system n State variables with initial values n Transition rules n Communication by shared variables n Scalable: choose system size parameters l Specify correctness condition l Automatic exhaustive state enumeration n Hash table to avoid repeating states Success with research, industrial protocol verification
8
Optimistic Contract Signing A B m 1 = sig A (PK A, PK B, T, text, hash(R A )) m 2 = sig B (m 1, hash(R B )) m 3 = R A m 4 = R B [Asokan, Shoup, Waidner] m 1, R A, m 2, R B
9
l Contract from normal execution l Contract issued by third party l Abort token issued by third party Several Forms of Contract m 1, R A, m 2, R B sig T (m 1, m 2 ) sig T (abort, a 1 )
10
Role of Trusted Third Party l T can issue an abort token Promise not to resolve the protocol in the future l T can issue a replacement contract Proof that both parties are committed l T decides whether to abort or resolve on the first-come-first-serve basis l T only gets involved if requested by A or B
11
Abort Subprotocol A ??? B Network T a 1 =sig A (abort,m 1 ) a2a2 resolved? Yes: a 2 = sig T (m 1, m 2 ) No: aborted := true a 2 = sig T (abort, a 1 ) m 1 = sig A (… hash(R A )) sig T (m 1, m 2 ) sig T (abort, a 1 ) OR
12
Resolve Subprotocol B A Net T r 1 = m 1, m 2 aborted? Yes: r 2 = sig T (abort, a 1 ) No: resolved := true r 2 = sig T (m 1, m 2 ) r2r2 m 1 = sig A (… hash(R A )) m 3 = R A m 2 = sig B (… hash(R B )) sig T (m 1, m 2 ) sig T (abort, a 1 ) OR ???
13
Race Condition B A m 1 = sig A (PK A, PK B, T, text, hash(R B )) m 2 = sig B (m 1, hash(R B )) T a 1 = sig A (abort, m 1 ) r 1 = m 1, m 2
14
Attack A r 2 = sig T (m 1, m 2 ) m 1 = sig A (... hash(R A )) m 2 = sig B (m 1, hash(R B )) m 3 = R A T r 1 = m 1, m 2 secret Q B, m 2 sig T (m 1, m 2 ) m 1, R A, m 2, Q B contracts are inconsistent!
15
Later... sig A (PK A, PK A, T, text, hash(R A )) B Replay Attack Intruder causes B to commit to old contract with A sig B (m 1, hash(Q B )) RARA QBQB A B RARA sig A (… hash(R A )) RBRB sig B (... hash(R B ))
16
sig A (, hash(R B )) Repairing the Protocol A B m 1 = sig A (PK A, PK B, T, text, hash(R A )) m 2 = sig B (m 1, hash(R B )) m 3 = R A m 4 = R B m 1, R A, m 2, R B
17
Another Property: Abuse-Freeness No party should be able to prove that it can solely determine the outcome of the protocol Example (Alice buys a house from Bob) Bob should not be able to show Alice’s offer to Cynthia so that he can convince Cynthia to pay more
18
Conclusions l Fair exchange protocols are subtle n Correctness conditions are hard to formalize n Unusual constraints on communication channels l Several interdependent subprotocols n Many cases and interleavings l Finite-state tools are useful for case analysis
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.