Outline for April 6, 2004
- Principle of Economy of Mechanism
- KISS principle
- Enables quick, easy verification
- Example of complexity: sendmail
- Principle of Complete Mediation
- All accesses must be checked
- Forces system-wide view of controls
- Sources of requests must be identified correatly
- Source of problems: caching (because it may not reflect the
state of the system correctly); examples are race conditions, DNS
poisoning
- Principle of Open Design
- Designs are open so everyone can examine them and know the
limits of the security provided
- Does not apply to cryptographic keys
- Acceptance of reality: they can get this info anyway
- Principle of Separation of Privilege
- Require multiple conditions to be satisfied before granting
permission/access/etc.
- Advantage: 2 accidents/errors/etc. must happen together
to trigger failure
- Principle of Least Common Mechanism
- Minimize sharing
- New service: in kernel or as a library routine? Latter is better,
as each user gets their own copy
- Principle of Psychological Acceptability
- Willingness to use the mechanisms
- Understanding model
- Matching user's goal
- ACM and primitive operations
- Go over subjects, objects (includes subjects), and state (S,
O, A) where A is ACM
- Transitions modify ACM entries; primitive operations
- enter r into A[s, o]
- delete r from A[s, o]
- create subject s' (note A[s', x]
= A[x, s'] = ø for all x)
- create object o' (note A[x, o']
= ø for all x)
- destroy subject s'
- destroy object o'
- Commands
- command c(s1, ..., sk,
o1, ..., ok)
if r1 in A[s1, o1] and
r2 in A[s2, o2] and
...
rm in A[sm, om]
then
op1;
op2;
...;
opn;
end.
- Example 1: creating a file
command create_file(p, f)
create object f;
enter Own into A[p, f]
enter Read into A[p, f]
enter Write into A[p, f]
end.
- Example 2: granting one process read rights to a file
command grant_read(p, q, f)
if Own in A[p, f]
then
enter Read into A[q, f]
end
- What is the safety question?
- An unauthorized state is one in which a generic right r could be leaked
into an entry in the ACM that did not previously contain r. An initial state
is safe for r if it cannot lead to a state in which r could be leaked.
- Question: in a given arbitrary protection system, is safety decidable?
- Mono-operational protection systems: decidable
- Theorem: there is an algorithm that decides whether a given mono-operational
system and initial state is safe for a given generic right.
Here is a PDF version of this document.