Access Control Matrix
Access Control Matrix
Protection State
State of a system
Current values of
All memory locations .
Registers
Other components of the system .
Security policy
Characterize the states in Q.
Security mechanism
Prevent the system from entering a state in PQ.
Description
File r,w,x
Dir r,w,x
Process r,w,x
Users and superuser
Example
Subject Annie
Attributes role (artist), groups (creative)
Verb paint
Default 0 (deny unless explicitly granted)
Object picture
Rule:
paint: artist in subject.role and
creative in subject.groups and
time.hour 0 and time.hour < 5
Query-set-overlap control
Prevention mechanism that answers queries only
when the size of the intersection of the query set
and each previous query set is smaller than some
parameter r.
Example
Consider the database with set r = 2.
Name
Position
Age
Salary
Celia
Teacher
45
$40000
Heidi
Aide
20
$20000
Holly
Principal
37
$60000
Leonard
Teacher
50
$50000
Matt
Teacher
33
$50000
Xi |
1 (
+
11
+ ,
, ,
1 )
+ ,
Xi+1
Primitive Commands
Set of primitive commands that alter the access
control matrix.
Before the execution of each command
protection state is (S;O;A) and (S;O;A) after
each command .
The preconditions state the conditions needed
for the primitive command to be executed, and
the postconditions state the results.
Create Subject
Precondition: s S
Primitive command: Create subject s
Postconditions: S' = S { s },
O' = O { s },
( y O')[a'[s, y] = ],
( x S')[a'[x, s] = ],
( x S)( y O)[a'[x, y] = a[x, y]]
Create Object
Precondition: o O
Primitive command: create object o
Postconditions: S' = S,
O' = O { o },
( x S')[a'[x, o] = ],
( x S)( y O)[a'[x, y] = a[x, y]]
Add Right
Precondition: s S, o O
Primitive command: enter r into a[s, o]
Postconditions: S' = S,
O' = O,
a'[s, o] = a[s, o] { r },
( x S')( y O')[(x, y) (s, o) a'[x,y] = a[x, y]]
Delete Right
Precondition: s S, o O
Primitive command: delete r from a[s, o]
Postconditions: S' = S,
O' = O,
a'[s, o] = a[s, o] { r },
(x S')(y O')[(x, y) (s, o) a'[x, y] = a[x, y]]
Destroy Subject
Precondition: s S
Primitive command: destroy subject s
Postconditions: S' = S { s },
O' = O { o },
(y O')[a'[s, y] = ],
(x S')[a'[x, s] = ],
( x S')(y O')[a'[x, y] = a[x, y]]
Destroy Object
Precondition: o O
Primitive command: destroy object o
Postconditions: S' = S,
O' = O { o },
(x S')[a'[x, o] =],
(x S')(y O')[a'[x, y] = a[x, y]]
Creating File
Process p creates file f with own, r and w
permission
command createfile(p, f)
create object f;
enter own into A[p, f];
enter r into A[p, f];
enter w into A[p, f];
end
Creating Process
Process p wishes to create a new process q.
command spawnprocess(p, q)
create subject q;
enter own into a[p, q];
enter r into a[p, q];
enter w into a[p, q];
enter r into a[q, p];
enter w into a[q, p];
end
Mono-Operational Commands
Make process p the owner of file g.
command makeowner(p, g)
enter own into a[p, g];
end
Mono-operational command
Single primitive operation in this command
Conditional Commands
Let p give process q rights to read a file f, if p
owns f
command grantreadfile1(p, f, q)
if own in A[p, f]
then
enter r into A[q, f];
end
Mono-conditional command
Single condition in this command
Multiple Conditions
Let p give q r and w rights over f, if p owns f
and p has c rights over q
command grantreadfile2(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
Copy Right
Allows possessor to give rights to another.
Often attached to a right, so only applies to
that right
r is read right that cannot be copied.
rc is read right that can be copied.
Own Right
The own right is a special right that enables
possessors to add or delete privileges for
themselves.
It also allows the possessor to grant rights to
others.
The owner of an object is usually the subject
that created the object or a subject to which
the creator gave ownership.
Key points
The Access Control Matrix is the simplest abstraction
mechanism for representing protection state.
Transitions change the state of a system and are expressed in
terms of commands.
There are six primitive operations for altering the access control
matrix.
Transitions can be expressed as commands composed of these
operations and, possibly, conditions.
Such conditions may involve ownership or the ability to copy a
right.