1 of 10

Access Control

Implementing Access Control

Adam Doupé

Arizona State University

https://pwn.college

2 of 10

Implementation

  • How to implement Access Control Matrix?

2

3 of 10

Access Control Lists (ACLs)

  • Each column of the access matrix is stored with the object

3

f

p: rwo

q: a

g

p: r

q: ro

4 of 10

Capability Lists

  • Each row of the access matrix is stored with the subject

4

f: rwo

g: r

f: a

g: ro

p

q

5 of 10

Relation

5

Subject

Access

Object

p

r

f

p

w

f

p

o

f

p

r

g

q

a

f

q

r

g

q

o

g

6 of 10

ACL vs. Capability

  • ACL requires authentication of subjects
  • CAP does not require authentication of subjects
    • Capabilities must be unforgeable and propagation must be controlled

6

7 of 10

ACL vs. Capability

7

File c

File b

File a

/project

User: rights

.

.

.

.

User: rights

.

.

.

.

Rights: File a, Rights: File b

File a

File b

user

Per-Object basis

Per-Subject basis

8 of 10

ACL vs. Capability

  • Least Privilege
    • CAP provides for finer grained least privilege control with respect to subjects, especially dynamic short-lived subjects created for specific tasks

8

9 of 10

ACL vs. Capability

  • Access review
    • ACL better for access review of objects
    • CAP better for access review of subjects
  • Revocation
    • ACL better for revocation on object basis
    • CAP better for revocation on subject basis

9

10 of 10

Capability Lists: Granting Access

  • p wants to grant q read access to file f
    • How to do this?

10

f: rwo

g: r

f: a

g: ro

p

q

f: ar

g: ro

q

f: a

g: ro

f: r

q