210 likes | 299 Views
Chapter 3: Foundational Results. Overview Harrison-Ruzzo-Ullman result Corollaries. Overview. Safety Question HRU Model. The general question. How can we determine whether a system is safe? Is there a generic algorithm that will determine whether a system is safe?.
E N D
Chapter 3: Foundational Results • Overview • Harrison-Ruzzo-Ullman result • Corollaries
Overview • Safety Question • HRU Model
The general question • How can we determine whether a system is safe? • Is there a generic algorithm that will determine whether a system is safe?
Reminder: safe vs secure • The term safe is used to refer to the abstract model. • The term secure is used when referring to implementations
What Is “Safe”? • Adding a generic right r where there was not one is “leaking” • If a system S, beginning in initial state s0, cannot leak right r, it is safe with respect to the right r.
Safety Question • Does there exist an algorithm for determining whether a protection system S with initial state s0 is safe with respect to a generic right r?
Mono-Operational Commands • Answer: yes • Theorem There exists an algorithm that will determine whether given mono-operational protection system with initial state s0 is safe with respect to a given generic right r.
Mono-Operational Commands • Sketch of proof: Consider the minimal sequence of commands c1, …, ck needed to leak the right. • Can omit delete, destroy (no commands can test for the absence of rights in an ACM) • Can merge all creates into one Worst case: insert every right into every entry; with s subjects and o objects initially, and n rights. Then (at worst) there are k ≤ n(s+1)(o+1) commands
General Case • Answer: no • Theorem It is undecidable whether a given state of a general protection system with is safe for a given right r.
General Case • Sketch of proof: Reduce the halting problem to safety problem
Turing Machine review • Infinite tape in one direction • States K, • Symbols M (alphabet); distinguished blank b • Transition function (k, m) = (k, m, L) means in state k, symbol m on tape location replaced by symbol m, head moves to left one square, and enters state k • Halting state is qf; TM halts when it enters this state
Halting problem • Determine if an arbitrary TM will enter a halting state qf • The Halting problem is known to be undecidable.
Mapping • First we construct a map from the states and symbols of a Turing machine TM to the rights in the access control matrix A. • The generic rights are taken to be • the symbols in M and • a set of distinct symbols each representing a state in K. • Each cell of TM is a subject. • Define a distinguished right own and such that siownssi+1
Mapping 1 2 3 4 s1 s2 s3 s4 A B C D … s1 A own head s2 B own s3 C k own Current state is k s4 D end
Mapping 1 2 3 4 s1 s2 s3 s4 A B X D … s1 A own head s2 B own s3 X own After (k, C) = (k1, X, R) where k is the current state and k1 the next state s4 D k1 end
Command Mapping (k, C) = (k1, X, R) at intermediate becomes command ck,C(s3,s4) ifowninA[s3,s4] andkinA[s3,s3] and C inA[s3,s3] then deletekfromA[s3,s3]; delete C fromA[s3,s3]; enter X intoA[s3,s3]; enterk1intoA[s4,s4]; end
Mapping 1 2 3 4 5 s1 s2 s3 s4 s5 A B X Y b s1 A own head s2 B own s3 X own After (k1, D) = (k2, Y, R) where k1 is the current state and k2 the next state s4 Y own s5 bk2 end
Command Mapping (k1, D) = (k2, Y, R) at end becomes command crightmostk,C(s4,s5) ifendinA[s4,s4] andk1inA[s4,s4] and D inA[s4,s4] then deleteendfromA[s4,s4]; create subjects5; enterown into A[s4,s5]; enterendintoA[s5,s5]; deletek1fromA[s4,s4]; delete D fromA[s4,s4]; enter Y intoA[s4,s4]; enterk2intoA[s5,s5]; end
Rest of Proof • Protection system exactly simulates a TM • Exactly 1 end right in ACM • 1 right in entries corresponds to state • Thus, at most 1 applicable command • If TM enters state qf, then right has leaked • If safety question decidable, then represent TM as above and determine if qf leaks • Implies halting problem decidable • Conclusion: safety question undecidable
Other Results • Set of unsafe systems is recursively enumerable (there is TM that will enumerate all systems) • Delete create primitive; then safety question is complete in P-SPACE • Delete destroy, delete primitives; then safety question is undecidable • Such systems are called monotonic: the size and complexity only increases. • Safety question for mono-conditional, monotonic protection systems is decidable • Safety question for mono-conditional protection systems with create, enter, delete (and no destroy) is decidable.
Key Points • Safety problem undecidable • Limiting scope of systems can make problem decidable