Concurrent Interpretations of Authorization Logic
Explore the concepts of authorization logic through discussions on policy enforcement, permissions, logical implications, and security theorems in the context of a scenario involving Alice, UdS Students, and printing permissions.
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
Concurrent Interpretations of Authorization Logic Andrew K. Hirsch Boston Computing Club March 13 2021 1
Is Alice a UdS Is Alice allowed to print? student? Alice is a UdS Student I want to print a document Policy: UdS Students may print Alice is a UdS Student
Questions about authorization: thentication How do we state authorization policies? How do we reason about authorization policies? How do we enforce authorization policies? Who is who? Main focus of today s talk Touch on if time Who may do what? thorization What do we record? dit
Permissions Principals System Components Users Software Modules Machines Alice may print Policies Beliefs Policy: UdS Students may print Alice is a UdS Student Wrong Beliefs Compromised
Does this policy subsume that? Under what circumstances may Alice e.g., print? Why is something (not) allowed? Logical Implications Any principal which is a UdS Student may print. MayPrint(?) ? Prin, isStudent ? Policy: UdS Students may print Not all relations are permissions Permissions are relations
Printer says isStudent(Alice) Printer says UdS speaks for Printer Alice is a UdS Student UdS says isStudent(Alice) Bob says isStudent(Alice)
Q: May Alice print? Assuming things on the left are true, prove the thing on the right Policy: UdS Students may print MayPrint(Alice) , May Alice print in May Alice print under this policy? this model and under this policy? ? Prin, isStudent ? MayPrint(?) System Model
isStudent(Alice) MayPrint(Alice) Policy: UdS Students Noninterference may print , , Only those you trust can hurt you Main security theorem for authorization logic isStudent(Alice) Policy: UdS Students may print Speaks For , ,
If everything up here is true A B D E ? Logical Formula Then so is everything down here Need rules for proofs Set of Logical Formulae
,?,? ? ,? & ? ? ? ? ? ? ? & ? &-L &-R axiom You can use an assumption of ?&?by using an assumption of ? and an assumption of ? You can prove ?& ?by proving ?and ? You can prove ? by assuming it
? ? axiom ,?,? ? ,? & ? ? &-L ? ? ? & ? &-R ? ?,? ? ?,? axiom axiom ?,? ? ?,? ? &-R ?,? ? & ? &-L ? & ? ? & ?
isStudent(Alice) MayPrint(Alice)
Principals are Reasoners Principals can reason from their beliefs to derive new beliefs ?,?, ? ? ? ? , ,
Says Reflection Principals know what they believe. ? ?
Says Join Principals are right about what they believe. ? ?
Counit does NOT hold Principals may believe untrue things ? ? This rule is common in logics of knowledge, rather than belief
Should Unit Hold? Principals believe all true things Yes No Extremely Influential ? ?
Confidentiality (2020) Unit can leak secrets I owe $100 I owe $100 Formal treatment of confidentiality in authorization
Distribution (2013) Unit can break distributivity CPUState(3) CPUState(3) Argument about distribution made informally
The Propositions-as-Types Principle Logic Computation
The Propositions-as-Types Principle Logic Propositions Computation Types
The Propositions-as-Types Principle Logic Propositions Proofs Computation Types Programs
The Propositions-as-Types Principle Logic Propositions Proofs Assumptions Computation Types Programs Inputs
The Propositions-as-Types Principle Logic Propositions Proofs Assumptions Conclusions Computation Types Programs Inputs Outputs
The Curry-Howard Isomorphism The Curry-Howard Correspondance Haskell Curry William Howard Andrej Kolmogorov LEJ Brouwer Arend Heyting The Brouwer- Heyting- Kolmogorov Interpretation Picture of William Howard from UIC. All others from Wikimedia Commons.
? ? ? ? Assumptions are variables var ,? ?,? ? ? ? ,? ? & ? let (?,?) ? in Match ? ? Evidence for ?&? is a pair of evidence for ? and ? ?1 ? ?2 ? ?1,?2 ? & ? Pair
? ? ? ?,? ? ? ? ? ?,? ? ? ?,? ? ? ? ? ?,? ? ? ? ? ?,? ? ?,? ? & ? ? & ? let ?,? ? in ?,? ? & ?
The Propositions-as-Types Principle Logic Propositions Proofs Assumptions Conclusions Principals Computation Types Programs Inputs Outputs
The Propositions-as-Types Principle Logic Propositions Proofs Assumptions Conclusions Principals Trust Computation Types Programs Inputs Outputs
The Propositions-as-Types Principle Logic Propositions Proofs Assumptions Conclusions Principals Trust Communication Computation Types Programs Inputs Outputs
The Propositions-as-Types Principle Logic Propositions Proofs Assumptions Conclusions Principals Computation Types Programs Inputs Outputs Processes (Computers, threads, ) Trust Communication
The Propositions-as-Types Principle Logic Propositions Proofs Assumptions Conclusions Principals Computation Types Programs Inputs Outputs Processes (Computers, threads, ) Channels Trust Communication
The Propositions-as-Types Principle Logic Propositions Proofs Assumptions Conclusions Principals Computation Types Programs Inputs Outputs Processes (Computers, threads, ) Channels Message-Passing Trust Communication
Need a programming paradigm with Processes Message-Passing Communication A Top-Down Point of View I.e., not a separate program for each process
? .? .?
; .? .? By treating these programs as equivalent, we can reason about concurrency.
.? Are Choreographies Good Enough? Untyped (or Session Typed) Stateful No interpretation for common logical connectives (e.g., implication) No channels No interpretation for beliefs about beliefs Receive from Alice Send ? to Bob
Functional Choreographies Ongoing joint work with Deepak Garg
.? ; .? .? .? now refers to ? Whole program computes a value on .?
s view of ? ? .? ? .?
.?refers to s ? (rec ? .? .?) ? Functions of local values Can recursively call ? Not bound in any process (rec ? ? .?1) ?2 Functions of global values ? refers to ?2 Can recursively call ?
.? ?, ? ? (rec ? .? .?) .? ? local
(rec ? .? .?) ? Are Choreographies Good Enough? Untyped (or Session Typed) Stateful No interpretation for common logical connectives (e.g., implication) No channels No interpretation for beliefs about beliefs s view of C Dummy value (rec ? ? . ? ) () (rec ? ? . ? ) ?
Extending Functional Choreographies Much more speculative portion of the talk Ongoing joint work with Hannah Gommerstadt, Alex Kavvos, Daniel Gratzer, Lars Birkedal, and Deepak Garg
speaks for (rec ? ? .?) Are Choreographies Good Enough? Untyped (or Session Typed) Stateful No interpretation for common logical connectives (e.g., implication) No channels No interpretation for beliefs about beliefs Functions of Channels Values as a language parameter Network Topology Computes to (rec ? Session-Typed Higher-Order Processes .?1) ?2 Functions of Principals How to compile?
Authorization Logic Functional Choreographies ? Topology ? Are Choreographies Good Enough? Untyped (or Session Typed) Stateful No interpretation for common logical connectives (e.g., implication) No channels No interpretation for beliefs about beliefs speaks for Computation Processes ? ? Network Simulation
Distribution Unit can break distributivity CPUState(3) CPUState(3) Need a computation that runs on but doesn t run on s simulation
Questions about authorization: How do we state authorization policies? How do we reason about authorization policies? How do we enforce authorization policies? Prove programs follow policies using Propositions-as-types
Write program in typed functional language Requires dependent types Same language Compatible Write policy as a type Prove your policy, thereby showing that it is followed Enforcement Neutral
Thank You Authorization policies can be reasoned about with logic Rules for this logic are not obvious Building concurrent interpretations helps us understand what rules are desirable and can help us build verification tools as well