Capabilities List and Access Control Lists

ACL’s and CL’s

Why Implementation of ACMs don’t use 2D Arrays

  • Implementing an ACM as a 2D Array requires a significant amount of memory, and much of it will go unused

    • The size of an ACM is the product of all subjects and objects in the system

    • An ACM is often sparse, as most subjects will have no access over most objects

  • Consequently, ACMs are often condensed in order to save space.

  • In practice, an ACM is implemented using either a capabilities list, or an access control list.

    • A capabilities list (CL) is a row-wise implementation that lists access on a per-subject basis. Each subject has a list of objects it can access and the permissions it has over those objects.

    • An access control list (ACL) is a column-wise implementation that lists access on a per-object basis. Each object has as list of subjects that can access it and the permissions those subjects have over it.

CLs and ACLs advantages and disadvantages

  • Although CLs and ACLs are both more space-efficient than using a full matrix, they each come with their own properties to consider.

Cl’s Adv. and Dis.

  • In a CL, access is handled via tickets. When a subject wants to access a resource, it presents a ticket as proof of permission. This has the following advantages:

    • Simple and efficient implementation

    • Easy to revoke access on a per-subject basis

  • However, this creates the following disadvantages:

    • Concept of ownership (per object) is diffused rather than centralized.

    • It is difficult to revoke access on a per-object basis.

ACL’s Adv. and Dis.

  • In an ACL, access is handled via access control entries (ACEs). When a subject wants to access a resource, that resource traverses the list for the appropriate ACE. This has the following advantages:

    • Strong, centralized ownership on a per-object basis.

    • Easy to revoke access on a per-object basis.

  • However, this creates the following disadvantages:

    • Implementation is less efficient.

    • It is difficult to revoke access on a subject basis.