syntactic criteria for language based noninterference
play

Syntactic Criteria for Language-Based Noninterference Andrei - PowerPoint PPT Presentation

Syntactic Criteria for Language-Based Noninterference Andrei Popescu, Johannes H olzl, Tobias Nipkow Fakult at f ur Informatik Technische Universit at M unchen Goal of This Talk Exhibit a uniform pattern behind syntactic


  1. Syntactic Criteria for Language-Based Noninterference Andrei Popescu, Johannes H¨ olzl, Tobias Nipkow Fakult¨ at f¨ ur Informatik Technische Universit¨ at M¨ unchen

  2. Goal of This Talk Exhibit a uniform pattern behind syntactic criteria for noninterference in a programming language High points • both nondeterministic and probabilistic variants • uniform representation of several literature results • fully verified in Isabelle Low points • only toy language • no flexible scheduler—only the uniform one • no fancy thread synchronization primitives

  3. Setting for Noninterference • Program runs operate on (memory) states • Assume attacker view of the state modeled as an equivalence relation ∼ on states • Example • state = var → value • var separated into low and high variables • low means attacker-observable • s ∼ s 1 iff s and s 1 coincide on the low variables • this means attacker can only see the low variables

  4. End-to-End Noninterference c s ′ Program runs: s c s ′ / ∼ Attacker sees: s / ∼ Noninterference: attacker cannot infer anything about s beyond s / ∼ Nuances of noninterference: c ? • What does it mean to see • only see/know the program c ? • also detect potential nontermination? • also see the number of steps (running time)? • What does it mean to see s ′ / ∼ ? • only see the actual outcome of one computation? • or run c multiple times and gather statistical information about s ′ / ∼ ?

  5. Bisimulation Noninterference • Attacker may observe not only the final state, but also intermediate states • Modeled as a bisimulation relation on configurations ( c,s ) or on programs c • Why? • Handle interactive programs • Compositional reasoning • Syntactic criteria (a.k.a. security type systems) • Typically: a bisim. nonint. is a sufficient criterion for an end-to-end nonint.

  6. � � � � � � � � � � � � � � � � Compositional Reasoning • Wish: c ∥ d nonint. if c nonint. and d nonint. • Impossible if nonint. ignores the intermediate states c d s s � � � � � � � � � � � � � � � � � � � � � � ● ● ● ● ● ● c ∥ d s � � � � � � � � � ○ ○ ○ � � � � � � � � � ● ● ●

  7. Overview End-to-End Nonint. code generation implies Scala Code Bisimulation Nonint. code generation hierarchy Scala Code compositionality Syntactic Criteria

  8. Overview End-to-End Nonint. code generation implies Scala Code Bisimulation Nonint. code generation hierarchy Scala Code compositionality Syntactic Criteria

  9. � � � � � � � � � � From End-to-End to Bisimulation Noninterference End-to-end noninterference of c : ∼ s t c c single step ● ∼ ● final statesmediate Bisimilarity = binary generalization of bisimulation nonint. “ c versus d ” instead of “ c versus itself” Suffices to focus on single steps of c basdsaq asasa

  10. � � � � � � � � � � From End-to-End to Bisimulation Noninterference Bisimulation noninterference c : ∼ s t c c single step ∼ ○ ○ intermediate states In addition, what remains to be executed from ( c,s ) should be further bisimilar to what remains to be executed from ( c,t ) Bisimilarity = binary generalization of bisimulation nonint. “ c versus d ” instead of “ c versus itself” Suffices to focus on single steps of c

  11. � � � � � � � � � � From End-to-End to Bisimulation Noninterference Bisimilarity between c and d : ∼ s t c d single step ∼ ○ ○ intermediate states In addition, what remains to be executed from ( c,s ) should be further bisimilar to what remains to be executed from ( d,t ) Bisimilarity = binary generalization of bisimulation nonint.: “ c versus d ” instead of “ c versus itself” Suffices to focus on single steps of c

  12. � � � � � � From End-to-End to Bisimulation Noninterference Bisimilarity between c and d : ∼ s t c d single step ∼ ○ ○ intermediate states In addition, what remains to be executed from ( c,s ) should be further bisimilar to what remains to be executed from ( c,t ) Bisimilarity = binary generalization of bisimulation nonint.: “ c versus d ” instead of “ c versus itself” Suffices to focus on single steps of c

  13. � � � � � � Bisimilarity: Summary ≈ c d iff ∀ ∃ ∼ s t c d ∼ s ′ t ′ ≈ c ′ d ′

  14. � � � � � � Variants of Bisimulation Nonint. ∼ s t c d ∼ s ′ t ′ • Discreetness discr: never change the indis. class of state • Self-isomorphism siso: 1 versus 1 , identity on commands • Strong bisimilarity ≈ S : 1 versus 1 • 01 -bisimilarity ≈ 01 : 1 versus 0 or 1 • Weak bisimilarity ≈ W : 1 versus 0 or more • Termination-sensitive: s ′ final iff t ′ final ≈ 01T , ≈ WT

  15. Overview End-to-End Nonint. code generation implies Scala Code Bisimulation Nonint. code generation hierarchy Scala Code compositionality Syntactic Criteria

  16. Overview End-to-End Nonint. code generation implies Scala Code Bisimulation Nonint. code generation hierarchy Scala Code compositionality Syntactic Criteria

  17. � � � � � � � � Hierarchy c ≈ w c � � � � � � � � � � � � � � � � � � � � � � c ≈ wT c c ≈ 01 c � ���������� ���������� � � � � � � � � � � � � c ≈ 01T c � � � � � � � � � � � � � � � � � � c ≈ s c discr c � � � � � � � � � � � � � � discr c ∧ finite c siso c

  18. Language While language augmented with parallel composition c ∶∶= atm ∣ c 1 ; c 2 ∣ If tst c 1 c 2 ∣ While tst c ∣ c 1 ∥ c 2 Imperative state-based semantics Atoms (atomic commands) interpreted as state transf. Tests interpreted as state predicates Interleaving semantics for ∥

  19. Compositionality c finite c discr c ϕ c ψ c True pres atm compat atm compat atm atm ψ T c 1 finite c 1 discr c 1 ϕ c 1 ψ c 2 c 1 ; c 2 finite c 2 discr c 2 ϕ c 2 ψ c 1 discr c 2 compat tst compat tst finite c 1 discr c 1 If tst c 1 c 2 ϕ c 1 ψ c 1 finite c 2 discr c 2 ϕ c 2 ψ c 2 compat tst discr d While tst d False False ϕ d finite c 1 discr c 1 ϕ c 1 ψ c 1 c 1 ∥ c 2 finite c 2 discr c 2 ϕ c 2 ψ c 2 ϕ ∈ { siso , ≈ s , ≈ 01T , ≈ wT } ψ ∈ {≈ 01 , ≈ w } ψ T = termination-sensitive version of ψ

  20. Compositionality c finite c discr c ϕ c ψ c True pres atm compat atm compat atm atm ψ T c 1 finite c 1 discr c 1 ϕ c 1 ψ c 2 c 1 ; c 2 finite c 2 discr c 2 ϕ c 2 ψ c 1 discr c 2 compat tst compat tst finite c 1 discr c 1 If tst c 1 c 2 ϕ c 1 ψ c 1 finite c 2 discr c 2 ϕ c 2 ψ c 2 compat tst discr d While tst d False False ϕ d finite c 1 discr c 1 ϕ c 1 ψ c 1 c 1 ∥ c 2 finite c 2 discr c 2 ϕ c 2 ψ c 2 ϕ ∈ { siso , ≈ s , ≈ 01T , ≈ wT } ψ ∈ {≈ 01 , ≈ w } ψ T = termination-sensitive version of ψ

  21. � � � � � � � � From Compositionality and Hierarchy to Syntactic Criteria c ≈ w c c finite c discr c ϕ c ψ c � � � � � � � � atm True pres atm compat atm compat atm � � � � � � � ψ T c 1 � � � � � � ψ c 2 � finite c 1 discr c 1 ϕ c 1 c 1 ; c 2 c ≈ 01 c c ≈ wT c finite c 2 discr c 2 ϕ c 2 ψ c 1 � ���������� ���������� discr c 2 � � � � compat tst compat tst � � finite c 1 discr c 1 � � If tst c 1 c 2 ϕ c 1 ψ c 1 � finite c 2 discr c 2 � � ϕ c 2 ψ c 2 � c ≈ 01T c � � compat tst � � While tst d False discr d False � � ϕ d � � � � finite c 1 discr c 1 ϕ c 1 ψ c 1 � c 1 ∥ c 2 � � finite c 2 discr c 2 ϕ c 2 ψ c 2 � � � � � c ≈ s c discr c � � � � � � � � � � � � � � discr c ∧ finite c siso c l ∶= 4 ; if h = 0 then { h ∶= 1; h ∶= 2 } else h ∶= 3

  22. � � � � � � � � From Compositionality and Hierarchy to Syntactic Criteria c ≈ w c c finite c discr c ϕ c ψ c � � � � � � � � atm True pres atm compat atm compat atm � � � � � � � ψ T c 1 � � � � � � ψ c 2 � finite c 1 discr c 1 ϕ c 1 c 1 ; c 2 c ≈ 01 c c ≈ wT c finite c 2 discr c 2 ϕ c 2 ψ c 1 � ���������� ���������� discr c 2 � � � � compat tst compat tst � � finite c 1 discr c 1 � � If tst c 1 c 2 ϕ c 1 ψ c 1 � finite c 2 discr c 2 � � ϕ c 2 ψ c 2 � c ≈ 01T c � � compat tst � � While tst d False discr d False � � ϕ d � � � � finite c 1 discr c 1 ϕ c 1 ψ c 1 � c 1 ∥ c 2 � � finite c 2 discr c 2 ϕ c 2 ψ c 2 � � � � � c ≈ s c discr c � � � � � � � � � � � � � � discr c ∧ finite c siso c l ∶= 4 ; if h = 0 then { h ∶= 1; h ∶= 2 } else h ∶= 3

Recommend


More recommend