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 .

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend