Chapter 2: Access Control Matrix Overview Access Control Matrix Model Protection State Transitions Commands Conditional Commands Introduction to Computer Security © 2004 Matt Bishop
Overview State of a system: the collection of the current values of all memory locations, all secondary storage, and all registers and other components of the system; Protection state of system: describes current settings, values of system relevant to protection;
Access Control Matrix Describes protection state precisely; Describes rights of each subject with respect to every other entity; State transitions change elements of matrix; http://slideplayer.com/4728910/15/images/11/Extended+Access+Control+Matrix.jpg
Description objects (entities) Subjects S = { s1,…,sn } o1 … om s1 … sn Subjects S = { s1,…,sn } Objects O = { o1,…,om } ∪ S Rights R = { r1,…,rk } Entries A[si, oj] R A[si, oj] = { rx, …, ry } means subject si has rights rx, …, ry over object oj
ACM – Process vs Files Processes p1, p2; Files f, g Rights r, w, x, a, o f g p1 p2 rwo r rwxo w a ro
ACM – Hosts in a LAN host names A B C own ftp ftp, nfs, mail, own ftp, mail
ACM – Computer Program Functions: inc_ctr, dec_ctr, manager Variable: counter Rights +, –, call counter inc_ctr dec_ctr - + manager call
State Transitions https://i.pinimg.com/originals/37/28/6d/37286de12e2123c03c6f2ac1cc7341db.gif
State Transitions |– : represents transition Xi |– Xi+1: command moves system from state Xi to Xi+1 Xi |– * Y: a sequence of commands moves system from state Xi to Y
Primitive Operations create subject s; create object o destroy subject s; destroy object o enter r into A[s, o] delete r from A[s, o]
Primitive Operations create subject sn; sn
Primitive Operations create object on on
Primitive Operations destroy subject sd; sd
Primitive Operations destroy object od od
Primitive Operations enter r into A[s, o] Adds r rights for subject s over object o o s r
Primitive Operations delete r from A[s, o] Removes r rights from subject s over object o o s r
Creating File Process p creates file f with r permission command create•file(p, f) create file f; enter own into A[p, f]; enter r into A[p, f]; end
Creating Process command spawn•process(p, q) create process q; enter own into a[p, q]; enter r into a[p, q]; enter r into a[q, p]; end
Mono-Operational Commands Single primitive operation in this command command make•owner(p, g) enter own into a[p, g]; end
Conditional Commands command grant•read•file•1(p, f, q) if own in A[p, f] then enter r into A[q, f]; end
Multiple Conditions 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