confidentiality annotations for circus
play

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


  1. Confidentiality Annotations for Circus Michael J. Banks 20th October 2011

  2. Stepwise software development FuncR

  3. Stepwise software development P 0 FuncR

  4. Stepwise software development verify F P 0 FuncR

  5. Stepwise software development (abstract design) verify F FuncR P 0 P i (concrete design) P n

  6. Stepwise software development (abstract design) verify F FuncR P 0 ⊑ F P i ⊑ F (concrete design) P n ⊑ F = better functionality (more defined behaviour)

  7. Stepwise software development verify F P 0 FuncR ⊑ F P i ⊑ F trans F P n Code ⊑ F = better functionality (more defined behaviour)

  8. Stepwise software development verify F P 0 FuncR ⊑ F P i ⊑ F ConfR trans F P n Code ⊑ F = better functionality (more defined behaviour)

  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

  10. Formalising the example: functionality using Circus (Woodcock and Cavalcanti, 2002; Oliveira et al., 2009) BIDDER ::= Alice | Bob channel bidAlice , bidBob : N 1 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 )   a > b & winner ! Alice → Stop   a < b & winner ! Bob → Stop ✷  � �  Declare �   winner ! Alice → Stop a = b & ✷ ⊓ winner ! Bob → Stop • Submit ; Declare end

  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 to untrusted users � �� � � �� � what? who?

  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?

  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!

  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 � � BidAlice ; BidBob ; f := Alice ; BidBob ; BidAlice ; f := Bob ⊓ Submit ′′ � � � ( f = Alice ⇒ � f = Bob ) ( f = Bob ⇒ � ∧ f = Alice )

  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 � � BidAlice ; BidBob ; f := Alice ; BidBob ; BidAlice ; f := Bob ⊓ Submit ′′ � � � ( f = Alice ⇒ � f = Bob ) ( f = Bob ⇒ � ∧ f = Alice )

  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

  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

  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

  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

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

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

  22. Secure software development verify F P 0 FuncR ⊑ F P i ⊑ F trans F P n Code

  23. Secure software development verify F P 0 FuncR ⊑ F P i ⊑ F ConfR trans F P n Code

  24. Secure software development verify F P 0 FuncR ⊑ F P i ⊑ F verify C ConfR trans F P n Code

  25. Secure software development verify F P 0 FuncR ⊑ F P i ⊑ FC verify C ConfR trans FC P n Code

  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!

  27. That’s all. . . Questions?

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

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

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

  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 .

Recommend


More recommend