wilmer ricciotti james cheney university of edinburgh
play

Wilmer Ricciotti James Cheney University of Edinburgh - PowerPoint PPT Presentation

Wilmer Ricciotti James Cheney University of Edinburgh International Colloquium on Theoretical Aspects of Computing 16-19 October 2018, Stellenbosch, South Africa Audited computation refers to the ability to: Faithfully record a


  1. Wilmer Ricciotti James Cheney University of Edinburgh International Colloquium on Theoretical Aspects of Computing 16-19 October 2018, Stellenbosch, South Africa

  2.  Audited computation refers to the ability to:  Faithfully record a description (log, trace, trail) of the computation history  Programmatically inspect that history at any time, and in particular during the computation itself  Take decisions based on the inspection  Typical approaches require the programmer to instrument the code in an ad hoc way  We seek to develop languages with a first-class notion of computation history

  3.  Break-the-glass policies (e.g. in electronic medical record systems)  Retrospective security  Access-control based on the function calls in the history of the current computation  Stack inspection  Annotation of data with information disclosing its origin or the way it was computed  Provenance

  4.  Break-the-glass policies (e.g. in electronic medical record systems)  Retrospective security  Access-control based on the function calls in the history of the current computation  Stack inspection  Annotation of data with information disclosing its origin or the way it was computed  Provenance

  5.  Break-the-glass policies (e.g. in electronic medical record systems)  Retrospective security  Access-control based on the function calls in the history of the current computation  Stack inspection  Annotation of data with information disclosing its origin or the way it was computed  Provenance

  6.  Break-the-glass policies (e.g. in electronic medical record systems)  Retrospective security  Access-control based on the function calls in the history of the current computation  Stack inspection  Annotation of data with information disclosing its origin or the way it was computed  Provenance

  7.  A refinement of modal logic allowing one to express  What is true  What is known to be true and the reason why it is known to be true Γ ⊢ 𝑡 𝐵  Originally defined as an axiomatic proof system à la Hilbert  Typed lambda calculi based CH-isomorphic to JL have been introduced

  8. 𝑁 ∷= 𝑦 𝑁 𝑁 𝜇𝑦. 𝑁 | ! 𝑟 𝑁 𝑚𝑓𝑢 ! 𝑦 ≔ 𝑁 𝑗𝑜 𝑁 𝜅(𝜘)  A lambda calculus with primitive notions of computation history and auditing (Bavera and Bonelli, 2015)  Audited units ! 𝑟 𝑁 are «boxes» logging the computation history of 𝑁 as a trail 𝑟 ) Example: in context: context context (1=2) → false ... ... if 1 = 2 if false then M then M else N else N

  9.  Trails = syntactic representation of reduction chains ! ( 𝜇𝑏, 𝑐. 𝑏, 𝑐 2 6 ↝ ! 𝐛𝐪𝐪(𝛄,𝐬) 𝜇𝑐. 2, 𝑐 6 ↝ ! 𝐮(𝐛𝐪𝐪 𝛄,𝐬 ,𝛄) 2,6  Reflexivity ( r ), transitivity ( t )  Reduction steps ( 𝛄 )  Congruence rules (e.g. app )

  10.  Trails = syntactic representation of reduction chains ! ( 𝜇𝑏, 𝑐. 𝑏, 𝑐 2 6 ↝ ! 𝐛𝐪𝐪(𝛄,𝐬) 𝜇𝑐. 2, 𝑐 6 ↝ ! 𝐮(𝐛𝐪𝐪 𝛄,𝐬 ,𝛄) 2,6  Reflexivity ( r ), transitivity ( t )  Reduction steps ( 𝛄 )  Congruence rules (e.g. app )

  11.  Trails = syntactic representation of reduction chains ! ( 𝜇𝑏, 𝑐. 𝑏, 𝑐 2 6 ↝ ! 𝐛𝐪𝐪(𝛄,𝐬) 𝜇𝑐. 2, 𝑐 6 ↝ ! 𝐮(𝐛𝐪𝐪 𝛄,𝐬 ,𝛄) 2,6  Reflexivity ( r ), transitivity ( t )  Reduction steps ( 𝛄 )  Congruence rules (e.g. app )

  12.  Trails = syntactic representation of reduction chains ! ( 𝜇𝑏, 𝑐. 𝑏, 𝑐 2 6 ↝ ! 𝐛𝐪𝐪(𝛄,𝐬) 𝜇𝑐. 2, 𝑐 6 ↝ ! 𝐮(𝐛𝐪𝐪 𝛄,𝐬 ,𝛄) 2,6  Reflexivity ( r ), transitivity ( t )  Reduction steps ( 𝛄 )  Congruence rules (e.g. app )

  13.  Trails = syntactic representation of reduction chains ! ( 𝜇𝑏, 𝑐. 𝑏, 𝑐 2 6 ↝ ! 𝐛𝐪𝐪(𝛄,𝐬) 𝜇𝑐. 2, 𝑐 6 ↝ ! 𝐮(𝐛𝐪𝐪 𝛄,𝐬 ,𝛄) 2,6  Reflexivity ( r ), transitivity ( t )  Reduction steps ( 𝛄 )  Congruence rules (e.g. app )

  14.  Principle: ! 𝑟 ℱ 𝑁 → ! 𝐮(𝑟,𝒭 𝑟 ′ ) ℱ 𝑂 Where:  𝑟 ′ ∶ 𝑁 → 𝑂  𝒭 is a trail context corresponding to ℱ  Concrete definition: trail permutations

  15.  A computation step without trails: 𝑂 𝑦 ൗ 𝜇𝑦. 𝑁 𝑂 → 𝑁  A computation step with trails: 𝑂 𝑦 ൗ 𝜇𝑦. 𝑁 𝑂 → 𝛄 ⊳ 𝑁  The operation pushing q’ to the outside is called trail normalization  Defined as a series of permutation reductions ! 𝑟 ℱ 𝑁 → ! 𝑟 ℱ 𝑟 ′ ⊳ 𝑂 ↠ ! 𝐮(𝑟,𝒭 𝑟 ′ ) ℱ 𝑂  Its cost depends on the size of ℱ  An efficiency issue similar to the one related to substitution

  16.  A computation step without trails: 𝑂 𝑦 ൗ 𝜇𝑦. 𝑁 𝑂 → 𝑁  A computation step with trails: 𝑂 𝑦 ൗ 𝜇𝑦. 𝑁 𝑂 → 𝛄 ⊳ 𝑁  The operation pushing q’ to the outside is called trail normalization  Defined as a series of permutation reductions ! 𝑟 ℱ 𝑁 → ! 𝑟 ℱ 𝑟 ′ ⊳ 𝑂 ↠ ! 𝐮(𝑟,𝒭 𝑟 ′ ) ℱ 𝑂  Its cost depends on the size of ℱ  An efficiency issue similar to the one related to substitution

  17.  A computation step without trails: 𝑂 𝑦 ൗ 𝜇𝑦. 𝑁 𝑂 → 𝑁  A computation step with trails: 𝑂 𝑦 ൗ 𝜇𝑦. 𝑁 𝑂 → 𝛄 ⊳ 𝑁  The operation pushing q’ to the outside is called trail normalization  Defined as a series of permutation reductions ! 𝑟 ℱ 𝑁 → ! 𝑟 ℱ 𝑟 ′ ⊳ 𝑂 ↠ ! 𝐮(𝑟,𝒭 𝑟 ′ ) ℱ 𝑂  Its cost depends on the size of ℱ  An efficiency issue similar to the one related to substitution

  18.  A computation step without trails: 𝑂 𝑦 ൗ 𝜇𝑦. 𝑁 𝑂 → 𝑁  A computation step with trails: 𝑂 𝑦 ൗ 𝜇𝑦. 𝑁 𝑂 → 𝛄 ⊳ 𝑁  The operation pushing q’ to the outside is called trail normalization  Defined as a series of permutation reductions ! 𝑟 ℱ 𝑁 → ! 𝑟 ℱ 𝑟 ′ ⊳ 𝑂 ↠ ! 𝐮(𝑟,𝒭 𝑟 ′ ) ℱ 𝑂  Its cost depends on the size of ℱ  An efficiency issue similar to the one related to substitution

  19.  Auditing is performed by an inspection operator ! 𝑟 ℱ 𝜅(𝜘) → ! 𝑟 ℱ 𝐮𝐣 ⊳ 𝑟𝜘  Trail inspection reifies the computation history of the audited unit currently being executed  It allows us to analyse the history by primitive recursion  Example: 𝜘 𝛄 = 𝜘 𝐮𝐣 = 1 , 𝜘 𝐮 = 𝜘 𝐛𝐪𝐪 = 𝜇𝑏, 𝑐. 𝑏 + 𝑐 , 𝜘 𝐬 = 0 Evaluates to 0; emits trails ti and 𝛄 ! (𝑢 0 ← 𝜅 𝜘 ; Emits trail 𝛄 3 times _ ← 𝜇𝑏, 𝑐. 𝑏, 𝑐 2 6; 𝑢 1 ← 𝜅(𝜘) ; Evaluates to 5, emits trails ti and 𝛄 Evaluates to 5 𝑢 1 − 𝑢 0 )

  20.  Auditing is performed by an inspection operator ! 𝑟 ℱ 𝜅(𝜘) → ! 𝑟 ℱ 𝐮𝐣 ⊳ 𝑟𝜘  Trail inspection reifies the computation history of the audited unit currently being executed  It allows us to analyse the history by primitive recursion  Example: 𝜘 𝛄 = 𝜘 𝐮𝐣 = 1 , 𝜘 𝐮 = 𝜘 𝐛𝐪𝐪 = 𝜇𝑏, 𝑐. 𝑏 + 𝑐 , 𝜘 𝐬 = 0 Evaluates to 0; emits trails ti and 𝛄 ! (𝑢 0 ← 𝜅 𝜘 ; Emits trail 𝛄 3 times _ ← 𝜇𝑏, 𝑐. 𝑏, 𝑐 2 6; 𝑢 1 ← 𝜅(𝜘) ; Evaluates to 5, emits trails ti and 𝛄 Evaluates to 5 𝑢 1 − 𝑢 0 )

  21.  Auditing is performed by an inspection operator ! 𝑟 ℱ 𝜅(𝜘) → ! 𝑟 ℱ 𝐮𝐣 ⊳ 𝑟𝜘  Trail inspection reifies the computation history of the audited unit currently being executed  It allows us to analyse the history by primitive recursion  Example: 𝜘 𝛄 = 𝜘 𝐮𝐣 = 1 , 𝜘 𝐮 = 𝜘 𝐛𝐪𝐪 = 𝜇𝑏, 𝑐. 𝑏 + 𝑐 , 𝜘 𝐬 = 0 Evaluates to 0; emits trails ti and 𝛄 ! (𝑢 0 ← 𝜅 𝜘 ; Emits trail 𝛄 3 times _ ← 𝜇𝑏, 𝑐. 𝑏, 𝑐 2 6; 𝑢 1 ← 𝜅(𝜘) ; Evaluates to 5, emits trails ti and 𝛄 Evaluates to 5 𝑢 1 − 𝑢 0 )

  22.  Auditing is performed by an inspection operator ! 𝑟 ℱ 𝜅(𝜘) → ! 𝑟 ℱ 𝐮𝐣 ⊳ 𝑟𝜘  Trail inspection reifies the computation history of the audited unit currently being executed  It allows us to analyse the history by primitive recursion  Example: 𝜘 𝛄 = 𝜘 𝐮𝐣 = 1 , 𝜘 𝐮 = 𝜘 𝐛𝐪𝐪 = 𝜇𝑏, 𝑐. 𝑏 + 𝑐 , 𝜘 𝐬 = 0 Evaluates to 0; emits trails ti and 𝛄 ! (𝑢 0 ← 𝜅 𝜘 ; Emits trail 𝛄 3 times _ ← 𝜇𝑏, 𝑐. 𝑏, 𝑐 2 6; 𝑢 1 ← 𝜅(𝜘) ; Evaluates to 5, emits trails ti and 𝛄 Evaluates to 5 𝑢 1 − 𝑢 0 )

  23.  Auditing is performed by an inspection operator ! 𝑟 ℱ 𝜅(𝜘) → ! 𝑟 ℱ 𝐮𝐣 ⊳ 𝑟𝜘  Trail inspection reifies the computation history of the audited unit currently being executed  It allows us to analyse the history by primitive recursion  Example: 𝜘 𝛄 = 𝜘 𝐮𝐣 = 1 , 𝜘 𝐮 = 𝜘 𝐛𝐪𝐪 = 𝜇𝑏, 𝑐. 𝑏 + 𝑐 , 𝜘 𝐬 = 0 Evaluates to 0; emits trails ti and 𝛄 ! (𝑢 0 ← 𝜅 𝜘 ; Emits trail 𝛄 3 times _ ← 𝜇𝑏, 𝑐. 𝑏, 𝑐 2 6; 𝑢 1 ← 𝜅(𝜘) ; Evaluates to 5, emits trails ti and 𝛄 Evaluates to 5 𝑢 1 − 𝑢 0 )

Recommend


More recommend