CSCE 465 Lecture 14
« previous | Tuesday, March 5, 2013 | next »
Security Theory I
Access Control Matrix and Foundational Results
Access Control Matrix
Protection state of system: describes current settings, values of system relevant to protection
State of system
- collection of current values of all memory location, storages, registers, etc.
- Subset of collection that deals with protection is protection state of system
Matrix
- Describes protection state precisely
- Matrix describing rights of subjects
- State transitions change elements of matrix
- Simplest abstraction mechanism for representing protection state.
| | objects (entities) | ||||
subjects | s1 | |
- Objects and other subjects on columns
- Subjects on rows
- Rights in cells reflect subject's allowed actions, etc.
f | g | p | q |
rwo | r | rwxo | w |
a | ro | r | rwxo |
State Transitions
Change protection state of system
State transitions due to commands
Represented by symbol .
- : command moves system from state to .
Protection State Transitions
Represented by 6 primitive commands that update/alter matrix:
- create subject
- creates new row and column
- create object
- creates new column
- destroy subject
- removes row and column corresponding to
- destroy object
- removes column corresponding to
- enter into
- adds rights from subject to object
- delete from
- removes rights from subject to object
Example usage in transition commands:
(* Mono-operation command = single operation command *) command make-owner(p, g) enter own into A[p,g]; end (* Conditional Command = Applies operation if access is granted *) command grant-read-file-1(p, f, q) if own in A[p,f] then enter r into A[q,f] end (* Multiple Conditions: let p give q r and w rights over f if p owns f and p has c rights over q *) command grant-read-file-2(p,f,q) if own in A[p,f] and c in A[p,q] then enter r into A[q,f] enter w into A[q,f] end end
Special Rights
- Copy rights allows possessor to grant rights to other
- Own rights enables possessors to add/delete privileges for themselves and others
Foundational Results
Given a computer system, how can we determine if it is secure?
Security vs. Safety
Let be set of generic (primitive) rights of system (no special rights)
When a generic right r is added to an element of access control matrix not already containing r, that right r is said to be leaked
- If a system can never leak a right r, it is said to be safe with respect to the right r.
- If a system can leak r, it is said to be unsafe with respect to right r
Safety refers to abstract model and security refers to actual implementation.
- Secure system corresponds to a model safe with respect to all rights
- However, a model safe with respect to all rights does not ensure a secure system
Our question can now be reworded into:
- Does there exist an algorithm for determining whether a protection system S with initial state s_0 is safe with respect to a generic right r?
Here, "safe" = "secure" for an abstract model.
Algorithm exists, but only for case of mono-operational commands in which all states can be enumerated.
General Case: undecidable whether a given state of a protection system is safe for generic right
Security Policy and Models
X is a set of entities, I is information
Confidentiality
has confidentiality property with respect to if no can obtain access to .
Integrity
has integrity property with respect to if all trust information in .
Types:
- Trust the data contained in
- Trust origin/identity of information in
Availability
has availability property with respect to if all can access .
Example
Policy disallows cheating, including:
- Copying homework, with or without permission
- CSE class has students do homework on computer
- Anne forgets to read-protect her homework file
- Bill copies Anne's homework assignment
Bill cheated since
- Policy forbids copying homework assignment
- Bill did it
- System entered unauthorized state
- Anne didn't protect her homework (not required by security policy)
- She didn't breach security
Mechanisms
Entity or procedure that enforces some part of security policy
Access Control
Determines what rights a particular entity has for a set of objects
Answers questions like:
- Do you have right to read /etc/passwd?
- Does Alice right to view CSE website?
Access Control Policy
function
Policy is a lot of these tuples, whether explicitly represented that way or not.
Matrix is shorthand notation