CS 513 - System Security
Lecture 19

Lecturer: Professor Fred B. Schneider
Notes by: Vicky Weissman
Lecture Date: 4/6/00


Today's Topics

Preventing Unauthorized Access:

A mechanism that uses an ACM to regulate access rights must: Without these provisions, a subject could change the ACM or impersonate another subject to gain unauthorized access.

ACM Storage:

To conserve space, only the non-zero elements of the matrix are stored. (The ACM is typically sparse since most subjects can only access a few objects.)

The ACM can be stored as a set of rows where each row, called a capability list (C-list), is maintained by the relevant subject. Alternatively, the ACM can be stored as a set of columns where each column, called an access control list (ACL), is maintained by the relevant object.

Access Control Lists:

Each object, o, maintains a list of the form:
((subject i, i's rights to o), (subject j, j's rights to o), ..., (subject s, s's rights to o))

The time to add, remove, or verify rights is linear with respect to the length of the list.
This time can be reduced by combining subjects with the same rights into a single group.
Example:
ACL = ((i, rijk), (j, rijk), (k, rijk), (m, rmn), (n, rmn)) becomes
ACL = ((groupijk, rijk), (groupmn, rmn)), groupijk = (i, j, k), groupmn = (m, n)
The time could also be reduced by caching portions of the list. This approach, however, would have to insure cache consistency.

Access Control in UNIX:

UNIX uses access control lists with the following support structure: