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

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