Confidentiality Annotations for Circus Michael J. Banks 20th - - PowerPoint PPT Presentation

confidentiality annotations for circus
SMART_READER_LITE
LIVE PREVIEW

Confidentiality Annotations for Circus Michael J. Banks 20th - - PowerPoint PPT Presentation

Confidentiality Annotations for Circus Michael J. Banks 20th October 2011 Stepwise software development FuncR Stepwise software development P 0 FuncR Stepwise software development verify F P 0 FuncR Stepwise software development (abstract


slide-1
SLIDE 1

Confidentiality Annotations for Circus

Michael J. Banks 20th October 2011

slide-2
SLIDE 2

Stepwise software development

FuncR

slide-3
SLIDE 3

Stepwise software development

FuncR P0

slide-4
SLIDE 4

Stepwise software development

FuncR P0

verifyF

slide-5
SLIDE 5

Stepwise software development

FuncR P0

verifyF

Pi Pn (abstract design) (concrete design)

slide-6
SLIDE 6

Stepwise software development

FuncR P0

verifyF

Pi Pn (abstract design) (concrete design) ⊑F ⊑F ⊑F = better functionality (more defined behaviour)

slide-7
SLIDE 7

Stepwise software development

FuncR P0

verifyF

Pi Pn ⊑F ⊑F Code

transF

⊑F = better functionality (more defined behaviour)

slide-8
SLIDE 8

Stepwise software development

FuncR P0

verifyF

Pi Pn ⊑F ⊑F Code

transF

ConfR ⊑F = better functionality (more defined behaviour)

slide-9
SLIDE 9

Working example

Consider a sealed bid auction between Alice and Bob Functionality requirements

◮ Each person submits a single bid to the system ◮ The person with the larger bid is the winner ◮ If bids are tied, the system chooses the winner

slide-10
SLIDE 10

Formalising the example: functionality

using Circus (Woodcock and Cavalcanti, 2002; Oliveira et al., 2009)

BIDDER ::= Alice | Bob channel bidAlice, bidBob : N1 channel winner : BIDDER process Auction begin state ST [a, b : N] BidAlice bidAlice?n → a := n? BidBob bidBob?n → b := n? Submit (BidAlice ; BidBob) ⊓ (BidBob ; BidAlice) Declare     a > b & winner!Alice → Stop ✷ a < b & winner!Bob → Stop ✷ a = b &

  • winner!Alice → Stop

⊓ winner!Bob → Stop

  

  • Submit ; Declare

end

slide-11
SLIDE 11

Confidentiality

Inference user’s knowledge of process design + user’s interaction with process ↓ all process behaviours consistent with interaction Security Must not reveal secret information

  • what?

to untrusted users

  • who?
slide-12
SLIDE 12

Working example

Recall the Auction process Confidentiality requirements

◮ Values of Bob’s bid over £100 are secret ◮ Identity of first bidder is secret

Does Auction satisfy these requirements?

slide-13
SLIDE 13

Working example

Recall the Auction process Confidentiality requirements

◮ Values of Bob’s bid over £100 are secret ◮ Identity of first bidder is secret

Does Auction satisfy these requirements?

◮ Informal interpretation is unsatisfactory!

slide-14
SLIDE 14

Confidentiality annotations

Specify an upper bound on user’s inferences about the state Values of Bob’s bid over £100 are secret BidBob′ bidBob?n → b := n?; b > 100 ⇒ b ≤ 100 Identity of first bidder is secret Submit′′

  • BidAlice ; BidBob ; f := Alice

⊓ BidBob ; BidAlice ; f := Bob

  • ;
  • (f = Alice ⇒

f = Bob) ∧ (f = Bob ⇒ f = Alice)

slide-15
SLIDE 15

Confidentiality annotations

Specify an upper bound on user’s inferences about the state Values of Bob’s bid over £100 are secret BidBob′ bidBob?n → b := n?; b > 100 ⇒ b ≤ 100 Identity of first bidder is secret Submit′′

  • BidAlice ; BidBob ; f := Alice

⊓ BidBob ; BidAlice ; f := Bob

  • ;
  • (f = Alice ⇒

f = Bob) ∧ (f = Bob ⇒ f = Alice)

slide-16
SLIDE 16

Verification

Question How can we verify that a process is secure? Problem

◮ Confidentiality annotations are specified locally ◮ But apply to the whole of a process

Solution Distribute confidentiality annotations throughout a process

slide-17
SLIDE 17

Verifying the example: by intuition

Assume Alice observes bidAlice and winner channels Bob’s bids over £100 are secret:

◮ Suppose Alice bids > £100, but Bob wins auction ◮ Alice can infer that Bob’s bid > £100 ◮ Alice learns the secret

slide-18
SLIDE 18

Verifying the example: by intuition

Assume Alice observes bidAlice and winner channels Bob’s bids over £100 are secret:

◮ Suppose Alice bids > £100, but Bob wins auction ◮ Alice can infer that Bob’s bid > £100 ◮ Alice learns the secret

slide-19
SLIDE 19

Verifying the example: by intuition

Assume Alice observes bidAlice and winner channels Bob’s bids over £100 are secret:

◮ Suppose Alice bids > £100, but Bob wins auction ◮ Alice can infer that Bob’s bid > £100 ◮ Alice learns the secret

slide-20
SLIDE 20

Verifying the example: formally

Bob’s bids over £100 are secret: Q =   a = a ∧ (a ≥ b ⇒ a ≥ b) ∧ (a ≤ b ⇒ a ≤ b) ∧ b > 100 ⇒ b ≤ 100   Suppose a > 100 and a < b: (a > 100 ∧ a < b) ⇒ Q = (a > 100 ∧ a < b) ⇒ (a = a ∧ a ≤ b ∧ b ≤ 100) = (a > 100 ∧ a < b) ⇒ (a = a ∧ a ≤ b ∧ b ≤ 100 ∧ a ≤ 100) = (a > 100 ∧ a < b) ⇒ false An inconsistency between functionality and confidentiality!

slide-21
SLIDE 21

Verifying the example: formally

Bob’s bids over £100 are secret: Q =   a = a ∧ (a ≥ b ⇒ a ≥ b) ∧ (a ≤ b ⇒ a ≤ b) ∧ b > 100 ⇒ b ≤ 100   Suppose a > 100 and a < b: (a > 100 ∧ a < b) ⇒ Q = (a > 100 ∧ a < b) ⇒ (a = a ∧ a ≤ b ∧ b ≤ 100) = (a > 100 ∧ a < b) ⇒ (a = a ∧ a ≤ b ∧ b ≤ 100 ∧ a ≤ 100) = (a > 100 ∧ a < b) ⇒ false An inconsistency between functionality and confidentiality!

slide-22
SLIDE 22

Secure software development

FuncR P0 Pi Pn Code

verifyF

⊑F ⊑F

transF

slide-23
SLIDE 23

Secure software development

FuncR P0 Pi Pn Code

verifyF

⊑F ⊑F

transF

ConfR

slide-24
SLIDE 24

Secure software development

FuncR P0 Pi Pn Code

verifyF

⊑F ⊑F

transF

ConfR

verifyC

slide-25
SLIDE 25

Secure software development

FuncR P0 Pi Pn Code

verifyF

⊑F ConfR

verifyC

⊑FC transFC

slide-26
SLIDE 26

Conclusion

Contributions

◮ A novel construct for specifying confidentiality ◮ A method for verifying confidentiality

In the paper

◮ Integrating confidentiality with the Circus semantics ◮ More examples!

slide-27
SLIDE 27

That’s all. . .

Questions?

slide-28
SLIDE 28

Semantics

Confidentiality annotations make a process secure. . . a := 1; a = 0 ⇒ a > 0 = ? a := 0; a = 0 ⇒ a > 0 = ?

slide-29
SLIDE 29

Semantics

Confidentiality annotations make a process secure. . . a := 1; a = 0 ⇒ a > 0 = a := 1 a := 0; a = 0 ⇒ a > 0 = ?

slide-30
SLIDE 30

Semantics

Confidentiality annotations make a process secure. . . a := 1; a = 0 ⇒ a > 0 = a := 1 a := 0; a = 0 ⇒ a > 0 = a := 0; false = false . . . but may make the process impossible to implement

slide-31
SLIDE 31

References

Marcel Oliveira, Ana Cavalcanti, and Jim Woodcock. A UTP semantics for Circus. Formal Aspects of Computing, 21(1):3–32, February 2009. doi: 10.1007/s00165-007-0052-5. Jim Woodcock and Ana Cavalcanti. The semantics of Circus. In ZB 2002: Formal Specification and Development in Z and B, volume 2272 of Lecture Notes in Computer Science, chapter 10, pages 184–203. Springer Berlin / Heidelberg, 2002. doi: 10.1007/3-540-45648-1 10.