330 likes | 434 Views
Digital Cash Protocols: A Formal Presentation Delwin F. Lee & Mohamed G.Gouda The University of Texas at Austin Presented by Savitha Krishnamoorthy CIS 788 The Ohio State University. Outline. Motivation Contribution Digital Cash Protocols Specs of Millicent Proof of Correctness
E N D
Digital Cash Protocols:A Formal PresentationDelwin F. Lee & Mohamed G.GoudaThe University of Texas at AustinPresented bySavitha KrishnamoorthyCIS 788The Ohio State University
Outline • Motivation • Contribution • Digital Cash Protocols • Specs of Millicent • Proof of Correctness • Specs of Micropayments • Proof of Correctness • Comments
Motivation • Increasing need for protocols facilitating online transactions • No existing formal verification of security of Digital Cash Protocols • Choice of protocols • Both prominent, largely supported • Techniques used can be applied to other protocols
Contribution • No formal verification available for any security protocol • Presents a formal technique of proving correctness
Digital Cash Protocols • Tailored to small purchases in micro-commerce applications • Need to prove security before approval • Protocols verified • Compaq’s Millicent • IBM’s Micropayments
Concepts & Proof • Proof uses concepts of • Closure • Convergence • Protection • Proves protocol security against • Forgery • Modification • Replay
Abstract Protocol Notation • Each process defined by consts, variables, parameters, and actions • Guard of action of Process P • Boolean expression over constants and vars of p • A receive guard: rcv<message> from process q • Timeout guard (Boolean exp over consts and vars of every process,contents of all channels in the protocol
Definitions • State: Function of protocol- assigns each variable a value from its domain, to each channel a sequence of messages • Transition: A pair(p,q) of states, Guard is true at p, execution of action when state=p -> state=q • Computation: Infinite sequence of states (p.0,p.1,p.2,…) s.t. (p.i,p.i+1) is a transition
Definitions Contd… • Safe state: occurs in any computation starting from an initial state of protocol • Error State: State reached when adversary executes its action • Unsafe state: an error state or occurs in a computation starting from an error state
Secure Protocol • Satisfies: • Closure: In every computation if first state is safe, every state is safe • Convergence:Protocol computation whose first state is unsafe, has a safe state • Protection: In each transition whose first state is unsafe, critical variables of protocol do not change their value
Technique of Proof • Presentation of protocol in abstract notation • Identification of Parties involved • Identification of actions executed at each party • State transformations with every action • Adversary Actions • Convergence from fault span, Protection
To Prove • Convergence of protocol • Protection of protocol
Specs of Millicent • Parties: Customers, Vendors • Customer specific, vendor specific scrip: • Identity of customer • Identity of vendor • Value of scrip (dollars)
The Millicent Protocol • Value of scrip buy request, scrip request • Message flow:
Fields of Scrip • Sequence number: detects scrip replay • Vendor Stamp: detects scrip forgery • Signature: Scrip modification MD(i|j|val[j]|seq[j]|stamp[j]|newval|sc[j])
Customer Actions • C.0:Send Request, with new scrip value; Compute signature to be included in the message • C.1: Receive and verify new scrip • C.2:Time out and retransmit • If message was sent and channels are empty
Vendor Actions • Receive request from customer • Compare seq no. to expected seq no. • s or s-1 is s is the last scrip • s => new request; check validity of stamp and signature • Reply with scrip message
Proof of Correctness • Safe States: • S.0: c[i] sends request message • S.1: v[j] receives request and sends back a scrip, executing its only action • S.2: c[i] receives the scrip and protocol returns to state S.0 • Fault Span: • Message Forgery (F) • Message Modification (M) • Message replay (R)
Adversary Actions • Forgery: • S.0->U.0: Adversary in collusion with customer forges a false scrip: cannot reproduce vendor stamp • Vendor Returns to S.0 (This means a customer can send his scrip only) • If valid c.0 is executed at U.0, vendor returns to S.1
Adversary Actions Contd… • Modification • C[i]’s request modified, S.1->U.2 • V[j]’s scrip modified, S.2->U.4 • Both fail due to signature (MD Hash) can be verified by either receiver • Message discarded, U2 or U4->U6 • C[i] times out, U6->S0
Adversary Actions Contd… • Replay • Current request message replaced with earlier request message, S.1->U.3 • Current scrip message replaced with earlier scrip, S.2->U.5 • Presence of sequence numbers causes message to be discarded, U.3 or U.5 -> U.6 • C[i] times out U.6->S.0
Proof of Security • Convergence: • Any computation with first state = {U.0,U.1,U.2,U.3,U.4,U.5,U.6} has a safe state S.0 or S.1
Proof of Security Contd… • Protection: No critical variable is updated when the protocol starts in an unsafe state • Critical variables: • Customer: Seq, val, stamp • Action updating critical variable: C.1 • Scrip is verified before updating
Protection Contd… • Critical Variables for vendor: seq, val, stamp • Updated by action v • If protocol starts in unsafe state with rqst message channel modified/replayed • V[j] invalidates message; leaves critical variables unchanged
State Diagrams • Interaction b/w customer and broker: • S.0: Initial State • S.0->S.1: c[i] sends cert req to broker • S.1->S.2: Broker action • S.2->S.0: c[i] receives cert
Verification • Forgery • S.0->U.0: Adversary creates its own certificate • Message discarded since broker’s private key cannot be accessed • U.0->U.1: c[i] requests at U.0
Verification • Message Modification • All messages are integrated with public/private key encryption • Message Replay • Presence of time stamp
Comments • Recognizes need for only single scrip for each vendor • Protocol never deals with combining scrip • Compares two widely used protocols; Micropayment more resource intensive and less efficient
Comments • Does not mention key exchange in millicent; required for signature • Fault Span can include Non-repudiation