## Principals Principals can be simple or compound. 1. Simple principals can be represented as just a name string. This string could represent many things: 1. People, machines, roles and groups (sets of principals) 2. Channels (network IP addresses, I/O ports, wires) 3. Encryption keys 2. Compound principals are made from combining simple principals. There are three operations: as, and, for. 1. **Principals in Roles** → Abadi _as_ Manager 2. **Conjunction** → Abadi _and_ Burrows 3. **Delegation** → Abadi _for_ Burrows Principals make statements to request access, grant access or to define policy. Channels are the only principals that can make statements directly. >[!Note]- How do non-channel principals (ex, users) make requests? >The *speaks for* operator → Channel from terminal *speaks for* user on the terminal. *Speaks for* results in a new statement. [[Authentication]] helps us answer, “who is making the statement s”? ## Statements Statements define a language. Requests, policies and all security relevant actions are all statements made in this language. There are some primitive statements like “read file $F$”. We can create complex statements by combining primitive statements. Let $s$ and $s^′$ be two statements. 1. $s⊃s^′$ => $s$ implies $s^′$ 2. $s∧s^′$ => $s$ and $s^′$ 3. $s≡s^′$ is => $s$ equals $s^′$ For principals $A$ and $B$, $A$ => $B$ is a statement that means, $A$ speaks for $B$. > There are no *not* statements (like negative [[Windows ACLs|ACLs]]), because it causes issues. ### Which statements are valid? Axioms are statements that are considered true by definition. 1. If s is an instance of a theorem of [[propositional logic]], then “$s$ (notation “$s$ means $s$ is true) 2. Modus Ponens → If “$s$ and “$s ⊃ s^′$ then “$s’$ 3. Non-axioms must be provable from axioms or other true statements. 1. “$((A$ says $s$ and $(A$ says $s ⊃ s’))$ ⊃ $A$ says $s’$ ) 2. “$s$ then “$A$ says $s$ for every principal $A$ 3. $A = B ⊃$ $(A$ says $s ≡ B$ says $s)$ 4. “$(A ∣ B)$ says $s ≡ A$ says $B$ says $s$ → $A$ quotes $B$ 5. Speaks for relationship 1. “$(A ⟹ B) ≡ (A = A ∧ B)$ 2. “$( A ⟹ B) ⊃ ((A$ says $s) ⊃ (B$ says $s))$ 3. “$(A = B) ≡ ((A ⟹ B) ∧ (B ⟹ A))$